抓取糗事百科的笑話哈哈
#面向過程版本
import requests
import re
from bs4 import BeautifulSoup
def getHTMLText(url):
try:
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0'}
r=requests.get(url,timeout=30,headers=headers)
r.raise_for_status()
r.encoding='utf-8'
return r.text
except:
raise
def parseHTML(ilt,html):
soup=BeautifulSoup(html,'html.parser')
articleDiv=soup.find_all('div',attrs={'class':'article block untagged mb15'})
for item in articleDiv:
try:
title=item.h2.string
article=item.span.get_text()
joy=item.find('span',attrs={'class':'stats-vote'}).get_text()
comment=item.find('a',attrs={'class':'qiushi_comments'}).get_text()
ilt.append([title,article,joy,comment])
except:
continue
def printArticle(ilt):
pattern=u'{0}\n{1}\n{2}{3}\n\n' #將編碼設置為Unicode編碼,好像很好使
for every in ilt:
print(pattern.format(every[0],every[1],every[2],every[3]))
with open('joke.txt','a',encoding='utf-8') as f:
f.write(every[1]+'\n'*2)
def main():
start_url='http://www.qiushibaike.com/hot/page/'
pageNumber=1
url=start_url+str(pageNumber)
html=getHTMLText(url)
#print(html)
ilt=[]
parseHTML(ilt,html)
printArticle(ilt)
main()
#用類和實例來做
import re
import requests
from bs4 import BeautifulSoup
class QSBK(object):
def __init__(self):
self.pageNumber=2
self.start_url='http://www.qiushibaike.com/hot/page/'
self.url=self.start_url+str(self.pageNumber)
self.ilt=[]
self.headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0'}
def getHTMLText(self):
try:
r=requests.get(self.url,timeout=20,headers=self.headers)
r.raise_for_status()
r.encoding='utf-8'
return r.text
except:
return 'ERROR'
def parsePage(self):
soup=BeautifulSoup(self.getHTMLText(),'html.parser')
articleDiv=soup.find_all('div',attrs={'class':'article block untagged mb15'})
for item in articleDiv:
try:
title=item.h2.string
article=item.span.get_text()
joy=item.find('span',attrs={'class':'stats-vote'}).get_text()
comment=item.find('a',attrs={'class':'qiushi_comments'}).get_text()
self.ilt.append([title,article,joy,comment])
except:
continue
def printJoke(self):
pattern=u'{0}\n{1}\n{2}{3}\n\n' #將編碼設置為Unicode編碼,好像很好使
for every in self.ilt:
print(pattern.format(every[0],every[1],every[2],every[3]))
with open('joke.txt','a',encoding='utf-8') as f:
f.write(every[1]+'\n'*2)
spider=QSBK()
spider.getHTMLText()
spider.parsePage()
spider.printJoke()
python 爬取糗事百科
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
- 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
推薦閱讀更多精彩內容
- 利用python寫一個爬蟲,爬取百度百科的某一個詞條下面的全部鏈接和每一個鏈接內部的詞條主題和摘要。利用reque...