python爬虫

淘宝爬虫-使用selenium采集关键词为电动车的数据

2019-07-25  本文已影响22人  9ba4bd5525b9

实现功能:

1、使用geckodriver驱动firefox访问淘宝首页,输入关键词,点击搜索按钮,翻页,点击确定按钮,采集信息,存储到mongodb,导出成CSV文件,统计程序运行时间

2、使用selenium的WebDriverWait(browser,10).until(expected_conditions.条件((By.条件,'条件')))方法,判断输入框是否加载完成,搜索按钮是否出现

3、使用send_keys()方法,输入关键字,使用click()方法,点击搜索

4、获取第1页的产品信息

5、使用第2步的方法,判断总页数是否出现,用text方法返回string

6、翻页的方法使用,使用第2步的方法,判断输入框是否出现,确定按钮是否出现,调用clear()方法清空输入框,send_keys()方法输入页码,click()方法点击按钮

7、使用第2步的方法,判断高亮的页码是否为翻页需要的页码

8、每获取1页翻页,就获取1页产品信息

9、产品信息的解析,使用pyquery库,首先使用第2步的方法,判断整个页面加载完成,即产品框的frame都出现了

10、提取需要的产品信息字段,存储到MONGODB

遇到的问题:

1、Chrome版本和ChromeDriver不匹配,改为使用firefox

2、使用PhantomJS报错,设置窗口大小后解决

3、从mongodb导出到csv文件,首次打开为乱码,用的是utf-8 without BOM编码,windows下需要使用utf-8,用notepad++打开csv文件设置一下编码保存即可

4、从firefox复制的CSS选择器格式错误,改用chrome

5、使用PhantomJS程序的运行时间: 251.23947518380507,而使用firefox的程序的运行时间: 143.89224086472169,所以其实并不是无界面浏览器就快

6、图片链接没有抓取完全,提取图片信息属性的时候应该直接使用data-src

收获

1、初步学会使用selenium采集JS渲染的页面

2、mongodb导出

3、CSS选择器使用

完整代码

上一篇 下一篇

猜你喜欢

热点阅读