每日新聞軟件可以幫助用戶通過python爬蟲回去最新的新聞,每天的頭條新聞都可以直接在軟件上獲取,方便用戶查看今天有哪些熱門的頭條,軟件可以自動抓取新聞網站的頭條信息,直接將標題顯示在抓取結果界面,方便用戶閱讀標題內容,標題都是可以復制的,如果對新聞內容感興趣就可以將其復制到瀏覽器搜索,方便閱讀詳細的新聞內容,這款python爬蟲抓取新聞軟件很好用,適合經常使用電腦工作,經常查看新聞的朋友使用!
1 新聞源列表
本文要實現的異步爬蟲是一個定向抓取新聞網站的爬蟲,所以就需要管理一個定向源列表,這個源列表記錄了很多我們想要抓取的新聞網站的url,這些url指向的網頁叫做hub網頁,它們有如下特點:
它們是網站首頁、頻道首頁、最新列表等等;
它們包含非常多的新聞頁面的鏈接;
它們經常被網站更新,以包含最新的新聞鏈接;
它們不是包含新聞內容的新聞頁面;
Hub網頁就是爬蟲抓取的起點,爬蟲從中提取新聞頁面的鏈接再進行抓取。Hub網址可以保存在mysql數據庫中,運維可以隨時添加、刪除這個列表;爬蟲定時讀取這個列表來更新定向抓取的任務。這就需要爬蟲中有一個循環來定時讀取hub網址。
2 網址池
異步爬蟲的所有流程不能單單用一個循環來完成,它是多個循環(至少兩個)相互作用共同完成的。它們相互作用的橋梁就是“網址池”(用asyncio.Queue來實現)。
這個網址池就是我們比較熟悉的“生產者-消費者”模式。
一方面,hub網址隔段時間就要進入網址池,爬蟲從網頁提取到的新聞鏈接也有進入到網址池,這是生產網址的過程;
另一方面,爬蟲要從網址池中取出網址進行下載,這個過程是消費過程;
兩個過程相互配合,就有url不斷的進進出出網址池。
3 數據庫
這里面用到了兩個數據庫:MySQL和Leveldb。前者用于保存hub網址、下載的網頁;后者用于存儲所有url的狀態(是否抓取成功)。
從網頁提取到的很多鏈接可能已經被抓取過了,就不必再進行抓取,所以他們在進入網址池前就要被檢查一下,通過leveldb可以快速查看其狀態。
3. 異步爬蟲的實現細節
前面的爬蟲流程中提到兩個循環:
循環一:定時更新hub網站列表
async defloop_get_urls(self,):print('loop_get_urls() start')while 1:
await self.get_urls()#從MySQL讀取hub列表并將hub url放入queue
await asyncio.sleep(50)
循環二: 抓取網頁的循環
async defloop_crawl(self,):print('loop_crawl() start')
last_rating_time=time.time()
asyncio.ensure_future(self.loop_get_urls())
counter=0while 1:
item=await self.queue.get()
url, ishub=item
self._workers+= 1counter+= 1asyncio.ensure_future(self.process(url, ishub))
span= time.time() -last_rating_timeif span > 3:
rate= counter /spanprint('tloop_crawl2() rate:%s, counter: %s, workers: %s' % (round(rate, 2), counter, self._workers))
last_rating_time=time.time()
counter=0if self._workers >self.workers_max:print('====== got workers_max, sleep 3 sec to next worker =====')
await asyncio.sleep(3)
1、可以通過這款軟件獲取全部新聞內容,軟件已經配置地址池
2、可以自動識別全部新聞,可以將頭條新聞標題抓取到軟件
3、通過python爬蟲快速捕捉新聞,每天打開軟件都可以知道新聞
4、如果你比較喜歡看新聞內容,可以直接在這款軟件爬取標題
1、軟件操作簡單,全部內容都已經編譯到EXE,啟動軟件就可以直接使用
2、讓用戶在軟件上知道今天有哪些新聞是熱門的
3、抓取的新聞標題可以直接復制使用,方便到瀏覽器搜索新聞
4、每天上班打開電腦的時候就可以啟動這款軟件獲取今日新聞
1、打開每日新聞軟件,點擊獲取按鈕就可以直接將新聞獲取
2、如圖所示,在軟件界面顯示全部新聞內容,代表建議:明確傷人犬只飼養者刑責,可以閱讀標題
3、可以將感興趣的標題復制到瀏覽器搜索新聞內容,如果不感興趣就可以直接關閉軟件
4、軟件獲取的新聞都是每天更新的,讓用戶可以快速抓取新聞網站每天的熱門內容
5、任意抓取到的內容都可以點擊Ctrl+C復制使用,可以到瀏覽器查看新聞內容
6、直接查詢新聞,點擊搜索到的新聞就可以查看詳細報告,如果你喜歡看新聞就可以下載使用
網友評論