1. 程式人生 > >爬蟲總結11

爬蟲總結11

關於appium爬蟲使用以及部署
https://github.com/butomo1989/docker-android
https://zhuanlan.zhihu.com/appium
mysql底層
https://blog.csdn.net/gitchat/article/details/78787837

  1. scrapy_redis作用:斷點續爬 分散式

  2. scrapy_redis原理:持久化請求佇列和指紋集合

  3. request的指紋的生成

    1. hashlib.sha1()
    2. method 排序後的url 排序後的請求體or’’
  4. request進入請求佇列的條件

    1. 指紋不在集合中
    2. request.dont_filter == True
  5. scrapy_redis程式碼實現

    1. 完成scrapy.Spider或scrapy.spiders.CrawlSpider爬蟲
    2. 在settings.py中設定scrapy_redis的配置
      生成指紋的去重類
      排程器類
      是否持久化請求佇列和指紋集合
      使用scrapy_redis的資料管道
      指定共用的redis的url
    3. 更改爬蟲的繼承類為
      scrapy_redis.spider.RedisSpider
      scrapy_redis.spider.RedisCrawlSpider
    4. 把start_urls換成redis_key
    5. 上傳程式碼
    6. 分別 scrapy crawl 爬蟲名
    7. 共用的redis中向redis_key中push起始的url
    8. scrapy_redis的兩個類爬蟲不能自動停止
  6. scrapy_splash元件
    scrapy_splash元件利用splash服務自動載入渲染js程式碼
    docker映象名:scrapinghub/splash
    docekr run -d -p 8050:8050 scrapinghub/splash
    在settings.py中配置scrapy_splash的設定
    指定指紋去重類
    指定三個相關的中介軟體
    指定使用splash的http快取功能
    指定splash服務的ip埠
    在爬蟲中使用scrapy_splash.SplashRequest類來構造請求物件