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

参考:

静觅丨崔庆才的个人博客

项目地址:

copywang/spiders_collection

实现功能:

  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选择器使用
原文地址:https://www.cnblogs.com/copywang/p/7894516.html