注:代码放在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