爬取貓眼TOP100

2021-09-02 18:49:15 字數 1995 閱讀 8570

學完正則的乙個小例子就是爬取貓眼排行榜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 這裡可能會出現錯誤,所以我們要...