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

python

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

  爬蟲四步原理:

    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="(.*?)">.*?<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}

"

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)

  执行结果:

以上是 使用re模块爬取豆瓣Top250电影信息 的全部内容, 来源链接: utcz.com/z/530621.html

回到顶部