上传文件至 /
This commit is contained in:
48
260402 2505155046.py
Normal file
48
260402 2505155046.py
Normal file
@@ -0,0 +1,48 @@
|
||||
import requests
|
||||
import re
|
||||
import time
|
||||
|
||||
def crawl_douban_top250_regex_with_quote():
|
||||
base_url = "https://movie.douban.com/top250"
|
||||
headers = {
|
||||
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
|
||||
}
|
||||
|
||||
movies = []
|
||||
|
||||
for start in range(0, 250, 25):
|
||||
url = f"{base_url}?start={start}&filter="
|
||||
|
||||
response = requests.get(url, headers=headers)
|
||||
html = response.text
|
||||
|
||||
pattern = re.compile(
|
||||
r'<em class="">(\d+)</em>.+?'
|
||||
r'<span class="title">([^&]+?)</span>.+?'
|
||||
r'<span class="rating_num" property="v:average">(\d\.\d)</span>.+?'
|
||||
r'<p class="quote">(.+?)</p>',
|
||||
re.S
|
||||
)
|
||||
|
||||
|
||||
items = pattern.findall(html)
|
||||
|
||||
for item in items:
|
||||
rank = item[0]
|
||||
title = item[1]
|
||||
rating = item[2]
|
||||
quote = item[3].strip()
|
||||
|
||||
movies.append({
|
||||
"rank": rank,
|
||||
"title": title,
|
||||
"rating": rating,
|
||||
"quote": quote
|
||||
})
|
||||
|
||||
|
||||
return movies
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
top250 = crawl_douban_top250_regex_with_quote()
|
||||
Reference in New Issue
Block a user