python爬蟲案例——糗事百科數據採集
Linux編程
點擊右側關注,免費入門到精通!
作者丨數據架構師
https://blog.csdn.net/luanpeng825485697/article/details/78403943
通過python實現糗事百科頁面的內容採集是相對來說比較容易的,因為糗事百科不需要登陸,不需要cookie,不過需要設置http的MIME頭,模擬瀏覽器訪問才能正常請求
本案例使用python實現糗事百科數據採集,獲取糗事百科熱門的文章內容和好評數量。
需要安裝BeautifulSoup包
python2.7下
#coding:utf-8 #本實例用於獲取糗事百科熱門的文章內容和好評數量。 import import from import
BeautifulSoup
#糗事百科需要設置MIME頭才能正常請求,不需要登陸,也不需要cookie
print(
"=======================糗事百科數據挖掘=========================="
)urlstr=
"https://www.qiushibaike.com/8hr/page/%d"
data={}
def
getdata
(html)
:#從字元串中安裝正則表達式獲取值
soup = BeautifulSoup(html,
"html.parser"
);alldiv = soup.find_all(
"div"
, class_=
"content"
)#內容的外部div
allnum = soup.find_all(
"span"
, class_="stats-vote"
)#點贊數量的外部span
for
iin
range(0
,len(alldiv)):"span"
)[
0
]).replace("<span>"
,""
).replace("</span>"
,""
).replace("<br/>"
,"
"
#內容文字,使用string在文字里還有<br/>時,無法列印,使用text會省略調用<br/>
"i"
)[
0
].string#好評數量
#根據一個網址,獲取該網址中符合指定正則表達式的內容
def
craw
(url)
:try
:user_agent =
"Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)"
headers = {
"User-Agent"
: user_agent }#設置MIME頭,糗事百科對這個進行了驗證
request = urllib2.Request(url,headers = headers)
#創建一個請求
response = urllib2.urlopen(request)
#獲取響應
html = response.read()
#讀取返回html源碼
getdata(html)
except
urllib2.URLError, e:if
hasattr(e,"code"
):if
hasattr(e,"reason"
):for
iin
range(1
,14
):url = urlstr % i
print(url)
craw(url)
python3.6下
#coding:utf-8 #本實例用於獲取糗事百科熱門的文章內容和好評數量。 import from import #糗事百科需要設置MIME頭才能正常請求,不需要登陸,也不需要cookie "=======================糗事百科數據挖掘=========================="
print(
urlstr=
"https://www.qiushibaike.com/8hr/page/%d"
data={}
def
getdata
(html)
:#從字元串中安裝正則表達式獲取值
soup = BeautifulSoup(html,
"html.parser"
);alldiv = soup.find_all(
"div"
, class_="content"
)#內容的外部div
allnum = soup.find_all(
"span"
, class_="stats-vote"
)#點贊數量的外部span
for
iin
range(0
,len(alldiv)):print(str(alldiv[i].find_all(
"span"
)[0
]).replace("<span>"
,""
).replace("</span>"
,""
).replace("<br/>"
,"
"
#內容文字,使用string在文字里還有<br/>時,無法列印,使用text會省略調用<br/>
print(allnum[i].find_all(
"i"
)[0
].string)#好評數量
#根據一個網址,獲取該網址中符合指定正則表達式的內容
def
craw
(url)
:try
:user_agent =
"Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)"
headers = {
"User-Agent"
: user_agent }#設置MIME頭,糗事百科對這個進行了驗證
request = urllib.request.Request(url,headers = headers)
#創建一個請求
response = urllib.request.urlopen(request)
#獲取響應
html = response.read()
#讀取返回html源碼
getdata(html)
except
urllib.error.URLErroras
e:if
hasattr(e,"code"
):print(e.code)
if
hasattr(e,"reason"
):print(e.reason)
for
iin
range(1
,14
):url = urlstr % i
print(url)
craw(url)
推薦↓↓↓
長
按
關
注
??
【
16個技術公眾號
】都在這裡!
涵蓋:程序員大咖、源碼共讀、程序員共讀、數據結構與演算法、黑客技術和網路安全、大數據科技、編程前端、Java、Python、Web編程開發、Android、iOS開發、Linux、資料庫研發、幽默程序員等。


※奉勸大家不要再熬夜了,我有一個朋友因為熬夜
※這雜技天賦滿點了!
TAG:Python開發 |