zoukankan      html  css  js  c++  java
  • 【学习】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选择器使用
  • 相关阅读:
    Android 开发转型前端准备知识
    atom写文档技巧
    gerrit升级到16.04之后连接不到服务器
    adb shell am pm
    ArrayList和LinkedList的区别
    Android源码编译
    Android动态加载代码技术
    File 与 FileStream 文件运用
    物体在一定范围自有碰撞
    扫描二维码加载网页图片
  • 原文地址:https://www.cnblogs.com/copywang/p/7894516.html
Copyright © 2011-2022 走看看