學完正則的乙個小例子就是爬取貓眼排行榜top100的所有電影資訊
看一下網頁結構:
可以看出要爬取的資訊在標籤和標籤中間
正規表示式如下:
pattern=re.compile('.*?board-index.*?>(.*?).*?data-src="(.*?)".*?name.*?a.*?>'
+'(.*?).*?star">(.*?)
' +'.*?releasetime">(.*?)
.*?integer">(.*?)'
+'.*?fraction">(.*?)
.*?',
re.s)
原始碼如下:
import requests
import re
import time
import json
def get_one_page(url):
headers=
response=requests.get(url,headers=headers)
if response.status_code==200:
return response.text
return none
def parse_one_page(html):
pattern=re.compile('.*?board-index.*?>(.*?).*?data-src="(.*?)".*?name.*?a.*?>'
+'(.*?).*?star">(.*?)
' +'.*?releasetime">(.*?)
.*?integer">(.*?)'
+'.*?fraction">(.*?)
.*?',
re.s)
'''pattern = re.compile('.*?board-index.*?>(\d+).*?data-src="(.*?)".*?name">(.*?).*?star">(.*?)
.*?releasetime">(.*?)
' + '.*?integer">(.*?).*?fraction">(.*?).*?', re.s)
'''items = re.findall(pattern, html)
for item in items:
yield
def write_to_file(content):
with open('movie.txt','a',encoding='utf-8') as f:
f.write(json.dumps(content,ensure_ascii=false)+'\n')
def main(offset):
url=''+str(offset)
html=get_one_page(url)
#print(html)
for item in parse_one_page(html):
print(item)
#write_to_file(item)
if __name__ == '__main__':
for i in range(10):
main(offset=i*10)
time.sleep(1)
在弄這個的時候,自己先寫了一遍正則,,不過只能爬取每一頁的第一條資料,然後就沒有下文了,,百思不得解
然後仔細的和書上的正則匹配,才發現有的地方寫錯了,通過這個例子,我們可以知道,正規表示式真的麻煩。。。。
也好難寫。
執行結果:
最後還將資料儲存在本地,,
爬取貓眼top100
導入庫 json用於讀取和寫入檔案 requests請求html requestexception用於獲取requests錯誤 time定義時間 re正規表示式 import json import requests from requests.exceptions import requestex...
爬蟲 爬取貓眼TOP100
原文崔慶才 python3網路爬蟲實戰 目標 熟悉正規表示式,以及爬蟲流程 獲取貓眼top100榜單 1 分析 目標站點為需要獲取 top100榜單的影片名稱 主演 上映時間 地區 評分等資訊都直接顯示在network對應的response中,可解析對應的html進行獲取。且從第1頁到第二頁,url...
小白回顧 爬取貓眼Top100
昨天寫的乙個爬蟲基礎課程爬取貓眼top100,今天分享一下 爬取貓眼top100 先導入import requests庫 html request.get url 這個函式可以獲取url裡面的內容 我們可以輸出html.text檢測一下 print html.text 這裡可能會出現錯誤,所以我們要...