爬虫-爬取豆瓣top250

发布于:2025-07-15 ⋅ 阅读:(16) ⋅ 点赞:(0)

1.思路

2.步骤

判断出是get类型

获取页面源代码

加上反扒验证

乱码的话加上utf-8

想办法先拿一个数据

#re.S可以让正则中的.匹配换行符
obj = re.compile(r'<div class="item">.*?<span class="title">(?P<name>.*?)</span>', re.S)#进行正则匹配
result = obj.finditer(pageSource)for item in result:print(item.group("name"))#拿结果

<br>回车&nbsp空格,需要括起来,不需要.*?

.strip()去掉字符串左右空白
import re

# 修正后的正则表达式
obj = re.compile(
    r'<div class="item">.*?<span class="title">(?P<name>.*?)</span>'  # 修正class引号问题
    r'.*?<p class="">.*?导演:(?P<dao>.*?)&nbsp;'  # 移除多余的r'连接符
    r'.*?<br>(?P<year>.*?)&nbsp;'  # 修正 |*? 为 .*?
    r'.*?<span class="rating_num" property="v:average">',
    re.S
)

# 进行正则匹配
result = obj.finditer(pageSource)

for item in result:
    # 打印格式化结果
    print(f"电影名称:{item.group('name').strip()}")
    print(f"导演信息:{item.group('dao').strip()}")
    print(f"上映年份:{item.group('year').strip()}")
    print("-" * 30)  # 分隔线

3.附上代码

import re
import requests
url = "https://movie.douban.com/top250"
headers ={'User-Agent':"Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko)Chrome/116.0.5845.97 Safari/537.36Core/1.116.537.400 QQBrowser/19.4.6561.400"}

rep = requests.get(url,headers=headers)
pageSource = rep.text
# print(pageSource)
# 修正后的正则表达式
obj = re.compile(
    r'<div class="item">.*?<span class="title">(?P<name>.*?)</span>'
    r'.*?<p>.*?导演: (?P<dao>.*?)&nbsp;'
    r'.*?<br>(?P<year>.*?)&nbsp;'
    r'.*?<span class="rating_num" property="v:average">'
    ,re.S
)

# 进行正则匹配
result = obj.finditer(pageSource)


for item in result:
    # print(item)
    # 打印格式化结果
    print(f"电影名称:{item.group('name').strip()}")
    print(f"导演信息:{item.group('dao').strip()}")
    print(f"上映年份:{item.group('year').strip()}")
    print("-" * 30)  # 分隔线


rep.close()


网站公告

今日签到

点亮在社区的每一天
去签到