抓取貓眼電影排行

2021-09-09 07:57:35 字數 2971 閱讀 9120

首先將第乙個頁面抓取下來:

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...