爬蟲scrapy框架學習(三)

2021-09-24 05:01:56 字數 2014 閱讀 1745

3.示例2redisspider:

a.使用方法:它與示例1只有乙個地方不同,就是將start_url存入redis中,**如下:

b.總結:該示例很簡單,只是將start_url存入redis_key中,就可實現分布式爬蟲

多台電腦共同完成乙個爬蟲,資料不會重複

4.示例3rediscrawlspider:

十、crontab定時執行爬蟲

十一、噹噹爬蟲例項

11.2實現:

setting.py的配置如下:

十二、收穫總結感悟

到此,關於python爬蟲的知識點就學完了,總結一下爬蟲的知識點,核心就是4個步驟,

構建請求-》獲取響應-》提取資料-》儲存資料

只要實現了這四步就是乙個完整的爬蟲,其他所有的知識點都是為了實現這四步操作,

- 專案名字:scarpy爬蟲

- 專案介紹:

爬了京東,噹噹,亞馬遜等**,獲取**上的圖書資料,每個月定時抓取圖書資料,使用該資料實現了圖書資訊的彙總,比對和篩選

- 開發環境

linux+pycharm+requests+mongodb+redis+crontab+scrapy_redis+ scarpy + mysql+gevent+celery+threading

- 使用技術

- 使用requests...把資料儲存在mongodb中

- 使用crontab實現程式的定時啟動抓取

- url位址的去重

- 使用redis的集合,把request物件的***字段通過sha1生成指紋,放入redis的集合中進行去重,實現基於url位址的增量式爬蟲

- 布隆過濾

- 對資料的去重

- 把資料的***字段通過sha1生成指紋,放入redis的集合中進行去重,實現增量式爬蟲

- 反扒

- **ip

- 購買了第三的**ip,組成**ip池,其中的ip沒兩天更新一次,同時使用單獨的程式來檢查**ip的可用

- cookie

- 準備了xx個賬號,使用requests獲取賬號的對應的cookie,儲存在redis中,後續傳送請求的時候隨機選擇cookie

- 使用selenium來進行模擬登陸,獲取cookie,儲存在redis中

- 資料通過js生成

- 分析js,通過chrome瀏覽器定位js的位置,尋找js生成資料的方式

- 通過selenium來模擬頁面的載入內容,獲取頁面動態載入後的資料

- 提高爬蟲效率

- 使用多線,執行緒池,協程,celery來完成爬蟲

- 使用scrapy框架來實現爬蟲,

- 不能斷點續爬,請求過的url位址不能持久化

- 使用scrapy_redis

- 不能對資料進行去重

- 把資料的***字段通過sha1生成指紋,放入redis的集合中進行去重,實現增量式爬蟲

- scrapy_redis

- domz實現增量式,持久化的爬蟲

- 實現分布式爬蟲

scrapy爬蟲框架 三

pipelines.py from scrapy.exporters import jsonitemexporter class qsbkspiderpipeline object def init self 初始化方法 使用二進位制來寫入,因此 w wb self.fp open duanzi2....

Scrapy爬蟲框架學習

目錄 五大模組 spider itempipeline schedule engine 四個配置引數 三個物件 常用屬性 常用方法 response 常用屬性 常用方法 item 兩類中介軟體 middleware spidermiddleware 解析html,產生爬取請求和資料 流水線處理資料,...

Scrapy框架爬蟲學習 3

繼上一節課爬取到了資料之後,這一節將資料入庫。因為python自帶了sqlite seklait 資料庫,直接用就可以。1.新建 sqlite 資料庫 在pycharm下進入terml,然後進入ipython模式,之後 import sqlite3 zufang sqlite3.connect zu...