學(xué)習(xí)的最好模式,就是學(xué)了就去馬上用咕缎。上次是學(xué)完了urllib和re庫之后嘗試爬取了豆瓣分享的書單优床,那個(gè)時(shí)候發(fā)現(xiàn)urllib這個(gè)標(biāo)準(zhǔn)庫還是不太好使。今天剛學(xué)了requests
這個(gè)更好用的庫之后丁鹉,嘗試和re一起使用爬取簡書的第一頁。
第一步:獲取響應(yīng)
使用的requests非常簡單悴能,非常人性化的get功能揣钦。
import requests
# 獲取respnose
headers = {
'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36',
'Host':'www.reibang.com'
}
url = 'http://www.reibang.com/'
response = requests.get(url,headers)
print(response.status_code)
context = response.text
第二步:從網(wǎng)頁中提取目標(biāo)信息
這一步主要涉及到觀察網(wǎng)頁構(gòu)造,然后使用正則表達(dá)式
我的目標(biāo)是:
- 作者
- 題目
- 文章簡單內(nèi)容
- 一些tag
先嘗試構(gòu)建獲取作者的正則表達(dá)式
pattern = re.compile('<li.*?"name">.*?>(.*?)</a>',re.S)
re.findall(pattern,context)
#得到的結(jié)果
['\n',
'馬力_可能性與大設(shè)計(jì)',
'文藝女青年專治各種不服',
'楊殼殼',
'投資人日知錄',
'白發(fā)老蘭',
'2020號',
'無戒',
'大胃黃咚咚',
'Aicuuu',
'婉悅悠然',
'MadisonT',
'小薦薦',
'會啊哦的跳跳蟲',
'夢旅人rose',
'吳益軍子',
'飽醉豚',
'張涔汐',
'笙和簫',
'手機(jī)殼0207',
'雪花如糖']
一鼓作氣漠酿,構(gòu)建所有的目標(biāo)信息的正則表達(dá)式模式:
pattern = re.compile('<li.*?"name">.*?>(.*?)</a>.*?"title".*?>(.*?)</a>.*?act">(.*?)</p>.*?/i>(.*?)</a>',re.S)
results = re.findall(pattern,context)
for info in results:
author,title,abstract,read_num = info
author = re.sub('\s','',author)
title = re.sub('\s','',title)
print(author,title,abstract,read_num )
部分爬取結(jié)果
下一步學(xué)習(xí)計(jì)劃
- re模塊雖然好用冯凹,但是寫起來還是麻煩,所以要去學(xué)習(xí)beautifulsoup等解析庫炒嘲,換一種提取數(shù)據(jù)方式
- 目前的數(shù)據(jù)沒有采用合理的保存方式宇姚,所以下一步 要去了解一下如何合理保存數(shù)據(jù)