网络编程
位置:首页>> 网络编程>> Python编程>> python使用re模块爬取豆瓣Top250电影

python使用re模块爬取豆瓣Top250电影

作者:Gg、  发布时间:2023-10-11 17:28:38 

标签:python,re,模块,爬取,豆瓣,电影

爬蟲四步原理:

1.发送请求:requests

2.获取相应数据:对方及其直接返回

3.解析并提取想要的数据:re

4.保存提取后的数据:with open()文件处理

爬蟲三步曲:

1.发送请求

2.解析数据

3.保存数据

注意:豆瓣网页爬虫必须使用请求头,否则服务器不予返回数据


import re
import requests

# 爬蟲三部曲:
# 1.获取请求
def get_data(url, headers):
 response = requests.get(url, headers=headers)
 # 如果爬取的是html文本就是用.text方法获取文本数据,如果爬取的是音视频就用.content方法获取二进制流数据
 # print(response.text)  # 获取相应文本,比如html代码
 return response.text

# 2.解析数据
def parser_data(text):
 # re.findall("正则表达式", "过滤的文本", re.S) # 匹配模式:re.S 全局模式
 data = re.findall(
   '<div class="item">.*?<a href="(.*?)" rel="external nofollow" >.*?<span class="title">(.*?)</span>.*?<span class="rating_num" property="v:average">(.*?)</span>.*?<span>(.*?)人评价</span>', text, re.S)
 for move_info in data:
   yield move_info

# 3.保存数据
def save_data(res_list_iter):
 with open("豆瓣TOP250.txt", "a", encoding="utf-8") as f:
   for i in res_list_iter:
     move_page, move_title, move_score, move_evaluation = i
     # print(move_page, move_title, move_score, move_evaluation)
     str1 = f"电影名字:《{move_title}》  电影评分:{move_score}  电影评价:{move_evaluation}  电影详情页:{move_page}\n"
     f.write(str1)

# 使用请求头请求数据
headers = {
 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 \
 Safari/537.36'
}
n = 0
# 获取10个链接
for i in range(10):
 url = f"https://movie.douban.com/top250?start={n}&filter=="
 n += 25
 text = get_data(url, headers)
 res_list_iter = parser_data(text)
 save_data(res_list_iter)

执行结果:

python使用re模块爬取豆瓣Top250电影

来源:https://www.cnblogs.com/jsxxd/p/13842360.html

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com