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>回车 空格,需要括起来,不需要.*?
.strip()去掉字符串左右空白
import re
# 修正后的正则表达式
obj = re.compile(
r'<div class="item">.*?<span class="title">(?P<name>.*?)</span>' # 修正class引号问题
r'.*?<p class="">.*?导演:(?P<dao>.*?) ' # 移除多余的r'连接符
r'.*?<br>(?P<year>.*?) ' # 修正 |*? 为 .*?
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>.*?) '
r'.*?<br>(?P<year>.*?) '
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()