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...