摘要:建議先大概瀏覽一下項目結(jié)構(gòu)項目介紹新手向,基于構(gòu)建的分布式爬蟲。以爬取考研網(wǎng)的貼子為例,利用進行解析,將符合要求的文章文本存入數(shù)據(jù)庫中。項目地址有任何問題可以與我聯(lián)系微信
Ugly-Distributed-Crawler
項目介紹建議先大概瀏覽一下項目結(jié)構(gòu)
新手向,基于Redis構(gòu)建的分布式爬蟲。
以爬取考研網(wǎng)的貼子為例,利用 PyQuery, lxml 進行解析,將符合要求的文章文本存入MySQ數(shù)據(jù)庫中。
協(xié)作模塊,用于為Master&Worker模塊提供代理IP支持
master提取滿足條件的文章url,并交給Worker進一步處理
worker解析文章內(nèi)容,將符合要求的存入數(shù)據(jù)庫
環(huán)境依賴sqlalchemy => 1.0.13
pyquery => 1.2.17
requests => 2.12.3
redis => 2.10.5
lxml => 3.6.0
如何啟動 0. 先配置好各模塊所引用的配置文件 1. 為了更好地運行,cooperator/start.py 應(yīng)提前開始并完成一次工作函數(shù)執(zhí)行需要預(yù)先安裝MySQL-server 和 Redis-server.
MySQL中應(yīng)有名為kybsrc的數(shù)據(jù)庫,且該數(shù)據(jù)庫包含一個名為posts的表,擁有num(INT AUTO_INCREMENT)和post(TEXT)兩個字段。
2. 啟動 master/start.py第一次執(zhí)行完后,每五分鐘運行一次工作函數(shù)
3. 啟動 worker/start.py默認只執(zhí)行一次
核心點說明 1. 通過Redis的集合類型進行代理IP和URL的傳遞默認循環(huán)監(jiān)聽是否有新的URL待解析
# Summary Reference # --------- # 創(chuàng)建句柄 def make_redis_handler(): pool = redis.ConnectionPool(host=r_server["ip"], port=r_server["port"], password=r_server["passwd"]) return redis.Redis(connection_pool=pool) # 獲得句柄 def make_proxy_handler(): return make_redis_handler() # 保存到指定的set下 def check_and_save(self, proxy): "pass" self.redis_handler.sadd(r_server["s_name"], proxy)2. 由于在驗證代理IP和使用封裝的get_url()函數(shù)的時候網(wǎng)絡(luò)IO較多,所以使用多線程(效果還是很明顯的)。
#Summary Reference #--------- def save_proxy_ip(self): "pass" for proxy in self.proxy_ip: Thread(target=self.check_and_save, args=(proxy,)).start() def get_url(url): "pass" while True: "pass" resp = request("get", url, headers=headers, proxies={"http": proxy}) "pass"項目地址 https://github.com/A101428020...
有任何問題可以與我聯(lián)系(微信:smartseer)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/38568.html
摘要:包括爬蟲編寫爬蟲避禁動態(tài)網(wǎng)頁數(shù)據(jù)抓取部署分布式爬蟲系統(tǒng)監(jiān)測共六個內(nèi)容,結(jié)合實際定向抓取騰訊新聞數(shù)據(jù),通過測試檢驗系統(tǒng)性能。 1 項目介紹 本項目的主要內(nèi)容是分布式網(wǎng)絡(luò)新聞抓取系統(tǒng)設(shè)計與實現(xiàn)。主要有以下幾個部分來介紹: (1)深入分析網(wǎng)絡(luò)新聞爬蟲的特點,設(shè)計了分布式網(wǎng)絡(luò)新聞抓取系統(tǒng)爬取策略、抓取字段、動態(tài)網(wǎng)頁抓取方法、分布式結(jié)構(gòu)、系統(tǒng)監(jiān)測和數(shù)據(jù)存儲六個關(guān)鍵功能。 (2)結(jié)合程序代碼分解說...
分布式爬蟲原理 什么是分布式爬蟲: 額,這個問題呢,我這樣解釋,例如爬取網(wǎng)站內(nèi)的二級網(wǎng)站,我們就需要獲取網(wǎng)站中的二級、三級...很多個網(wǎng)站,那么我們?nèi)绻米约阂慌_主機爬取明顯效率很低,這個時候我們就需要其他主機的幫助了,這個時候我們就將作為Master,為其他主機Slaver提供url的同時,啟動程序,沒錯,我們的工作就這么多,而Slaver主機的作用就是接收url,解析并獲取想要的數(shù)據(jù)。。...
摘要:分布式爬蟲框架詳解隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展與應(yīng)用的普及,網(wǎng)絡(luò)作為信息的載體,已經(jīng)成為社會大眾參與社會生活的一種重要信息渠道。下載器中間件位于引擎和下載器之間的框架,主要是處理引擎與下載器之間的請求及響應(yīng)。 scrapy-redis分布式爬蟲框架詳解 隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展與應(yīng)用的普及,網(wǎng)絡(luò)作為信息的載體,已經(jīng)成為社會大眾參與社會生活的一種重要信息渠道。由于互聯(lián)網(wǎng)是開放的,每個人都可以在網(wǎng)絡(luò)上...
閱讀 770·2021-09-30 09:46
閱讀 3777·2021-09-03 10:45
閱讀 3609·2019-08-30 14:11
閱讀 2544·2019-08-30 13:54
閱讀 2255·2019-08-30 11:00
閱讀 2347·2019-08-29 13:03
閱讀 1554·2019-08-29 11:16
閱讀 3581·2019-08-26 13:52