網路爬蟲——專案實戰(爬取糗事百科所有文章)
程式碼代寫(實驗報告、論文、小程式製作)服務請加微信:ppz2759
專案分析
一、首先準備好我們要爬取網站的糗事百科網址(http://www.qiushibaike.com/),大家可以檢視一下文章的原始碼,查詢我們要爬取的內容的規律,下面是我提取的部分程式碼
<div class="content">
<span>
兒子三歲的時候,經常跟著奶奶,奶奶開了個養雞場,養了三四千只雞,孩子每天最高興的就是跟奶奶進雞房撿雞蛋,拾進那個大木頭箱子,拉出來,再裝進蛋托裡裝箱。<br/><br/>有天奶奶正在那裝蛋託呢,兒子在跟前玩,一個沒立穩,一屁股坐在了裝雞蛋的大木箱子裡,把滿滿的一箱子雞蛋坐出了個大坑,嚇的哇哇哭起來了,奶奶都沒捨得訓他。而是自己把剩下好的雞蛋挨個都擦了裝箱,把還能吃的壞一點的雞蛋都留下來自個吃。<br/><br/>晚上吃飯的時候,他叔叔和爺爺看著飯桌上炒的一大盤雞蛋,都說婆婆開眼了,捨得炒這麼多雞蛋,兒子在一邊悠悠得說:“叔叔,
…
</span>
<span class="contentForAll">檢視全文</span>
</div>
<a href="/article/122710686" target="_blank" class="contentHerf" onclick="_hmt.push(['_trackEvent','web-list-content','chick'])">
<div class="content">
<span>
單位安排我們一些管理人員先上班!<br/>這天領導突然檢查工作,要求必須佩戴好口 罩去迎接!<br/>當時我在整理檔案,著急忙慌的剛摘掉的口罩居然找不到了,情急之下,我抓起美女同事桌子上的一包口 罩就往外跑!<br/>在離領導們還有20米左右的時候,我趕緊拿出口罩準備戴上,拿出來才發現,是衛 生 巾!<br/>哎喲喲,眾目奎奎一下,我這個臉呀!
</span>
</div>
結合上面的程式碼和下面的前端樣式,我們可以得出結論,所有的文章是在 < div class=“content”></ div>之間,有的同學可能會問,為什麼不是< span>標籤裡面的呢,因為有的span標籤裡面有干擾的內容,比如上文的< span class=“contentForAll”>檢視全文</ span>等
二、開啟觀察一下介面,我們可以發現這是由很多頁組成的,我們如果想爬取全部的內容的話,同時需要翻頁操作,這就需要我們分析一下如何翻頁。
第二頁網址:https://www.qiushibaike.com/hot/page/2/
第三頁網址:https://www.qiushibaike.com/hot/page/3/
第四頁網址:https://www.qiushibaike.com/hot/page/4/
這樣大家就會發現規律了吧
三、如果看我說的有點跳,不太清楚,那就來看看程式碼吧,程式碼不懂的可以看我上一篇文章Urlib模組介紹
#建立一個使用者代理池陣列
uapools=[
"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36",#360
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36",#谷歌
"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0",
"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.5",
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0",
]
#定義一個方法UA()
def UA():
#建立一個urllib.request.build_opener()物件
opener = urllib.request.build_opener()
#每次從uapools中隨機選取一個User-Agent
thisua = random.choice(uapools)
#以JSON格式(鍵值對)儲存一個User-Agent
ua = ("User-Agent",thisua)
#將User-Agent賦值給opener.addheaders
opener.addheaders=[ua]
#將urllib.request的install_opener改成我們們的
urllib.request.install_opener(opener)
print("當前使用User-Agent:"+str(thisua))
sum = 0
for i in range(0,13):
#從第一頁便利到第十三頁
url = "https://www.qiushibaike.com/hot/page/"+ str(i+1) +"/"
UA()
#這回就可以快樂的爬取網站內容啦
data = urllib.request.urlopen(url).read().decode("utf-8","ignore")
string = '<div class="content">.*?<span>(.*?)</span>.*?</div>'
res = re.compile(string,re.S).findall(data)
for j in range(0,len(res)):
print(res[j])
print("-------------本頁第" + str(j) + "條------------")
sum = sum + 1
print("共有"+ str(sum) +"條文章")
來看下執行結果吧:看來糗事百科截至2020.2.7共有261條文章
哪裡沒有看懂,或者我有錯誤的地方,歡迎在評論區指出,謝謝大家!
相關文章
- 網路爬蟲——爬取糗事百科笑料段子爬蟲
- python爬蟲爬取糗事百科Python爬蟲
- python爬蟲十二:middlewares的使用,爬取糗事百科Python爬蟲
- python爬取糗事百科Python
- 網路爬蟲——爬蟲實戰(一)爬蟲
- Python爬取糗事百科段子Python
- Python網路爬蟲實戰小專案Python爬蟲
- Python網路爬蟲實戰專案大全!Python爬蟲
- Python網路爬蟲實戰專案大全 32個Python爬蟲專案demoPython爬蟲
- 網路爬蟲專案爬蟲
- Java 爬蟲專案實戰之爬蟲簡介Java爬蟲
- Python3 大型網路爬蟲實戰 — 給 scrapy 爬蟲專案設定為防反爬Python爬蟲
- 爬蟲專案實戰(一)爬蟲
- 爬蟲實戰專案集合爬蟲
- 爬蟲實戰專案合集爬蟲
- 網路爬蟲(六):實戰爬蟲
- 大型商城網站爬蟲專案實戰網站爬蟲
- 網路爬蟲專案蒐集爬蟲
- python爬蟲---網頁爬蟲,圖片爬蟲,文章爬蟲,Python爬蟲爬取新聞網站新聞Python爬蟲網頁網站
- 網路爬蟲——Urllib模組實戰專案(含程式碼)爬取你的第一個網站爬蟲網站
- 2019最新《網路爬蟲JAVA專案實戰》爬蟲Java
- Python大型網路爬蟲專案開發實戰(全套)Python爬蟲
- 爬蟲作業03-爬取解密大資料專欄下的所有文章爬蟲解密大資料
- Python網路爬蟲實戰Python爬蟲
- Python3 大型網路爬蟲實戰 003 — scrapy 大型靜態圖片網站爬蟲專案實戰 — 實戰:爬取 169美女圖片網 高清圖片Python爬蟲網站
- 專案--python網路爬蟲Python爬蟲
- 網路爬蟲(python專案)爬蟲Python
- 精通Scrapy網路爬蟲【一】第一個爬蟲專案爬蟲
- Python3 大型網路爬蟲實戰 004 — scrapy 大型靜態商城網站爬蟲專案編寫及資料寫入資料庫實戰 — 實戰:爬取淘寶Python爬蟲網站資料庫
- python爬蟲學習(1)-抓取糗事百科笑話Python爬蟲
- python網路爬蟲應用_python網路爬蟲應用實戰Python爬蟲
- 最新《30小時搞定Python網路爬蟲專案實戰》Python爬蟲
- python網路爬蟲--專案實戰--scrapy嵌入selenium,晶片廠級聯評論爬取(6)Python爬蟲晶片
- python 爬蟲 爬取 learnku 精華文章Python爬蟲
- PHP 爬蟲爬取社群文章內容PHP爬蟲
- 【Python爬蟲9】Python網路爬蟲例項實戰Python爬蟲
- Python靜態網頁爬蟲專案實戰Python網頁爬蟲
- Python 爬蟲進階篇-利用beautifulsoup庫爬取網頁文章內容實戰演示Python爬蟲網頁