注:代码放在github上,这里只讨论出现的问题和解决办法。
本来是爬取淘宝的,但是淘宝在搜索关键词时要登陆;使用selenium我还不会添加cookies, 因此比较麻烦,所以转而爬取不需要登陆的京东。
爬取时,应安装好需要的包,以及需要有一个Chrome浏览器, 以及配置好Chromedriver.
京东网页有个问题就是,如果你不下拉,那么商品图片将不会加载。
解决办法:
在读取每一个商品前,加入以下代码:
browser.maximize_window()
time.sleep(0.05)
for i in range(0, 100):
time.sleep(0.07)
js = "window.scrollTo(0,%s)" % (i*100)
browser.execute_script(js)
该代码可实现自动向下滚动窗口。循环里的sleep time 要根据自己网速来调整,如果网速略慢则需要将时间调大点;
我只是将图片url保存在了本地,并没有读取及下载,因为我担心大量下载也会被京东反爬,目前我还没有防止反爬比较好的技巧。
在运行程序时,会跳出Chrome浏览器运行。如果不想让其跳出,可使用PhantomJS; 我没有尝试,仅提一下有该方法。
代码链接:
https://github.com/GhostSteven/Crawler/tree/master/JD
本文链接:http://task.lmcjl.com/news/6633.html