首先將第乙個頁面抓取下來:
import requests
"""抓取乙個
"""def get_one_page(url):
headers =
response = requests.get(url,headers=headers)
#判斷響應的狀態碼
if response.status_code == 200:
return response.text
else:
return none
if __name__ == '__main__':
url = ''
html = get_one_page(url)
print(html)
利用在正規表示式提取出我們想要的內容:
def parse_one_page(html):
pattern = re.compile(
'.*?board-index.*?>(.*?).*?data-src="(.*?)".*?name.*?a.*?>(.*?).*?star.*?>(.*?)
.*?releasetime.*?>(.*?)
.*?integer.*?>(.*?).*?fraction.*?>(.*?).*?',re.s
)items = re.findall(pattern,html)
return items
但是返回結果太亂了,我們用生成器來進行迭代:
import requests
import re
"""抓取乙個
"""def get_one_page(url):
headers =
response = requests.get(url,headers=headers)
#判斷響應的狀態碼
if response.status_code == 200:
return response.text
else:
return none
#對頁面進行解析
def parse_one_page(html):
pattern = re.compile(
'.*?board-index.*?>(.*?).*?data-src="(.*?)".*?name.*?a.*?>(.*?).*?star.*?>(.*?)
.*?releasetime.*?>(.*?)
.*?integer.*?>(.*?).*?fraction.*?>(.*?).*?',re.s
)items = re.findall(pattern,html)
for item in items:
yield
if __name__ == '__main__':
url = ''
html = get_one_page(url)
for item in parse_one_page(html):
print(item)
接下來將提取的結果寫入檔案中:
def write_to_file(content):#傳入的content是乙個字典
with open('result.txt','a',encoding='utf-8') as f:
print(type(json.dumps(content)))#使用dumps()方法實現字典的序列化
f.write(json.dumps(content,ensure_ascii=false)+'\n')#將ensure_ascii設定為false是保證輸出結果是中文形式而不是unicode編碼
爬取排名前100的完整**如下:
import requests
import re
import json
#抓取乙個頁面
def get_one_page(url):
headers =
response = requests.get(url,headers=headers)
#判斷響應的狀態碼
if response.status_code == 200:
return response.text
else:
return none
#對頁面進行解析
def parse_one_page(html):
pattern = re.compile(
'.*?board-index.*?>(.*?).*?data-src="(.*?)".*?name.*?a.*?>(.*?).*?star.*?>(.*?)
.*?releasetime.*?>(.*?)
.*?integer.*?>(.*?).*?fraction.*?>(.*?).*?',re.s
)items = re.findall(pattern,html)
for item in items:
yield
def write_to_file(content):#傳入的content是乙個字典
with open('result.txt','a',encoding='utf-8') as f:
f.write(json.dumps(content,ensure_ascii=false)+'\n')#將ensure_ascii設定為false是保證輸出結果是中文形式而不是unicode編碼
def main(offset):
url = '?offset=' + str(offset)
html = get_one_page(url)
for item in parse_one_page(html):
write_to_file(item)
if __name__ == '__main__':
for i in range(10):
main(i*10)
抓取貓眼電影排行
今天學習 python3網路爬蟲 第三章時,在章節尾部的爬取貓眼電影排行練習中成功實現,但這一部分有點不明白,先記錄下來 def get one page url try headers response requests.get url,headers headers if response.st...
抓取貓眼電影排行
抓取貓眼電影排行 1.抓取分析 需要抓取的目標url為 開啟之後便可以檢視到電影的排行,如下圖 可以發現第二頁的url為第三頁的url為以此類推。2.抓取第一頁 定義乙個函式用於抓取乙個頁面,函式的引數就是url,將我們要抓取頁面的url傳給函式,返回的結果就是伺服器端的響應。import requ...
學習抓取貓眼電影排行
抓取目標貓眼電影top100的電影資訊 使用requests和正規表示式 抓取分析 站點url為,開啟看到榜單資訊等 跳轉第二頁url變為?offset 10,第三頁?offset 20,對比不難發現url中引數offset代表電影序號偏移量。抓取首頁 import requests def get...