简单的讲,图片加载到你浏览器的过程是这样:
1、浏览器跟服务器说:「我要看网页!」。
2、服务器向你扔了一个html文件。
3、浏览器打开html,读到图片那部分发现是一堆脚本,浏览器又问服务器:「我要看这里的图片!」。
4、服务器又向你扔了一张图片。
好了,你现在要做的就是第3部,假装自己是浏览器,跟服务器要来那张图片。
第一种方法,自己装成浏览器。你需要用抓包工具查看浏览器向服务器要图片时「说了什么悄悄话」。比如wireshark,tcpdump,你像变态一样偷听人家说话,然后伪装成浏览器跟服务器打情骂俏。这需要懂一些javascript,会发ajax请求。
第二种方法,直接委托浏览器帮你把图片要来。你需要在爬虫里,调用浏览器内核( 如chromedriver, phantomJS)帮你跟服务器沟通,取得图片。这样比自己跟服务器沟通慢,但是简单,不需要你懂太多。你只要调用那些内核程序的命令就行了。
这里推荐新手用selenium(现改名叫webdriver)+ chromedriver或phantomJS的组合。
我这里有个源码,是结合了上面说的方法和普通html请求的方法获取数据的,用了python爬虫框架scrapy。
https://github.com/sundiontheway/landchina-spider