本篇文章我们使用python编程语言写一段爬取网页文字的程序,程序使用Request模块向目标王者发送请求以获取页面源代码,通过临时变量res接收服务器响应的数据,再通过BeautfulSoup模块解析页面内容,提取关键信息,最后将提取的内容保存在csv文件中,以下是相关代码。

import re
from email.header import Header
import requests
from bs4 import BeautifulSoup
f=open("top.csv",mode="w",encoding='utf-8')
URL = "https://movie.douban.com/top250?start=25"
headers = {"user-agent":"Mozilla/5.0 Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36 Edg/150.0.0.0"}
res=requests.get(URL, headers=headers)
pageSource = res.text
soup = BeautifulSoup(pageSource, "html.parser")
obj=re.compile(r'<div class="item">.*?<span class="title">(?P<name>.*?)</span>.*?<p>.*?导演:(?P<dao>.*?)&nbsp;.*?<br>(?P<year>.*?)&nbsp;.*?<span class="rating_num" property="v:average">(?P<score>.*?)</span>.*?<span>(?P<num>.*?)人评价</span>',re.S)
resoult=obj.finditer(pageSource)
for item in resoult:
    name=item.group("name")
    dao=item.group("dao")
    year=item.group("year")
    score=item.group("score")
    num=item.group("num")
    f.write(f"{name},{dao},{year},{score},{num}\n")
f.close()
res.close()
print("豆瓣250提取完毕")

运行结果如下图所示:

以上内容还有不足部分,还请各位多多指教。

更多推荐