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


Posted in Python onOctober 20, 2020

爬?四步原理:

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电影

以上就是python使用re模块爬取豆瓣Top250电影的详细内容,更多关于python 爬取豆瓣电影的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python 正则式 概述及常用字符
May 07 Python
用python代码做configure文件
Jul 20 Python
python中__call__方法示例分析
Oct 11 Python
Python实现脚本锁功能(同时只能执行一个脚本)
May 10 Python
pandas DataFrame实现几列数据合并成为新的一列方法
Jun 08 Python
python3使用pandas获取股票数据的方法
Dec 22 Python
Python实现的逻辑回归算法示例【附测试csv文件下载】
Dec 28 Python
NumPy 数组使用大全
Apr 25 Python
python画图--输出指定像素点的颜色值方法
Jul 03 Python
pycharm 批量修改变量名称的方法
Aug 01 Python
Python 元组拆包示例(Tuple Unpacking)
Dec 24 Python
看看如何用Python绘制小米新版天价logo
Apr 20 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
Oct 20 #Python
Python 制作查询商品历史价格的小工具
Oct 20 #Python
python实现扫雷游戏的示例
Oct 20 #Python
python3排序的实例方法
Oct 20 #Python
关于python tushare Tkinter构建的简单股票可视化查询系统(Beta v0.13)
Oct 19 #Python
15款Python编辑器的优缺点,别再问我“选什么编辑器”啦
Oct 19 #Python
django使用channels实现通信的示例
Oct 19 #Python
You might like
超神学院:天使彦公认最美的三个视角,网友:我的天使快下凡吧!
2020/03/02 国漫
用php将任何格式视频转为flv的代码
2009/09/03 PHP
探究Laravel使用env函数读取环境变量为null的问题
2016/12/06 PHP
js事件(Event)知识整理
2012/10/11 Javascript
Extjs4 GridPanel的主要配置参数详细介绍
2013/04/18 Javascript
JQuery 获取json数据$.getJSON方法的实例代码
2013/08/02 Javascript
jQuery入门基础知识学习指南
2015/08/14 Javascript
jquery 重写 ajax提交并判断权限后 使用load方法报错解决方法
2016/01/19 Javascript
有关jquery与DOM节点操作方法和属性记录
2016/04/15 Javascript
NodeJS与HTML5相结合实现拖拽多个文件上传到服务器的实现方法
2016/07/26 NodeJs
Express + Node.js实现登录拦截器的实例代码
2017/07/01 Javascript
Vue.js结合Ueditor富文本编辑器的实例代码
2017/07/11 Javascript
JS实现的JSON序列化操作简单示例
2018/07/02 Javascript
vue-cli 3.x 修改dist路径的方法
2018/09/19 Javascript
详解Vue-axios 设置请求头问题
2018/12/06 Javascript
nodejs使用node-xlsx生成excel的方法示例
2019/08/22 NodeJs
js实现右键弹出自定义菜单
2020/09/08 Javascript
[36:43]NB vs Optic 2018国际邀请赛小组赛BO1 B组加赛 8.19
2018/08/21 DOTA
[40:19]2018完美盛典CS.GO表演赛
2018/12/17 DOTA
关于Python核心框架tornado的异步协程的2种方法详解
2019/08/28 Python
Python字符串和正则表达式中的反斜杠('\')问题详解
2019/09/03 Python
python给指定csv表格中的联系人群发邮件(带附件的邮件)
2019/12/31 Python
Django 404、500页面全局配置知识点详解
2020/03/10 Python
Python3标准库glob文件名模式匹配的问题
2020/03/13 Python
如何用 Python 制作一个迷宫游戏
2021/02/25 Python
餐厅总经理岗位职责
2013/12/31 职场文书
远程教育心得体会
2014/01/03 职场文书
元旦活动感言
2014/03/08 职场文书
光信息科学与技术专业职业生涯规划
2014/03/13 职场文书
老师对学生的评语
2014/04/18 职场文书
保护环境建议书300字
2014/05/13 职场文书
公务员保密工作承诺书
2015/05/04 职场文书
硕士学位申请报告
2015/05/15 职场文书
有关浪费资源的建议书
2015/09/14 职场文书
如何写好闭幕词
2019/04/02 职场文书
SpringBoot项目中控制台日志的保存配置操作
2021/06/18 Java/Android