豆瓣top250网页提取

#通过豆瓣top250网页,将排行榜中的250个电影名字,发布年份,评分,评论人数四项内容写入到data.csv文件中
import requests
import re
import csv

#找到url
url = "https://movie.douban.com/top250"
#设置headers
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36"}
#设置params
number = 0
keyvalue = {
"start":number,
"filter": ""
}

#编译正则,提取需要的内容
obj=re.compile(r'<li>.*?<div class="item">.*?<span class="title">(?P<name>.*?)</span>.*?<p class="">.*?<br>(?P<year>.*?)&nbsp.*?<span class="rating_num" property="v:average">(?P<score>.*?)</span>.*?<span>(?P<num>.*?)人评价</span>',re.S) #命名时?P中的P必须是大写,re.S中的S必须是大写。

#打开准备写入的CSV文件
f=open("data.csv",mode="w")
csvwriter = csv.writer(f)
#模拟浏览器发起request
r = requests.get(url=url, headers=headers, params=keyvalue)
page_content = r.text
#通过正则表达式提取网页中需要的内容
result = obj.finditer(page_content)
#将找到的内容写入CSV文件中
for it in result:
    dic = it.groupdict()
    dic["year"] = dic["year"].strip()
    csvwriter.writerow(dic.values())
#关闭文件
f.close()

#该代码只实现了将第一页写入,通过for循环,将number变量每次加25实现翻页,可以继续写入。

Guess you like

Origin blog.csdn.net/weixin_47401101/article/details/121053316