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 相关文章推荐
Django自定义分页与bootstrap分页结合
Feb 22 Python
tensorflow实现softma识别MNIST
Mar 12 Python
python3+PyQt5+Qt Designer实现堆叠窗口部件
Apr 20 Python
Python基于OpenCV库Adaboost实现人脸识别功能详解
Aug 25 Python
python装饰器常见使用方法分析
Jun 26 Python
python web框架Flask实现图形验证码及验证码的动态刷新实例
Oct 14 Python
浅谈python中统计计数的几种方法和Counter详解
Nov 07 Python
使用pyqt5 tablewidget 单元格设置正则表达式
Dec 13 Python
Pytorch之finetune使用详解
Jan 18 Python
详解python logging日志传输
Jul 01 Python
Python OpenCV读取中文路径图像的方法
Jul 02 Python
Docker如何部署Python项目的实现详解
Oct 26 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
PHP中的strtr函数使用介绍(str_replace)
2011/10/20 PHP
Laravel框架实现利用监听器进行sql语句记录功能
2018/06/06 PHP
PHP中md5()函数的用法讲解
2019/03/30 PHP
解决js数据包含加号+通过ajax传到后台时出现连接错误
2013/08/01 Javascript
巧用jquery解决下拉菜单被Div遮挡的相关问题
2014/02/13 Javascript
BootStrap智能表单实战系列(八)表单配置json详解
2016/06/13 Javascript
ES6中Proxy与Reflect实现重载(overload)的方法
2017/03/30 Javascript
javascript实现动态显示颜色块的报表效果
2017/04/10 Javascript
使用javascript函数编写简单银行取钱存钱流程
2018/05/26 Javascript
详解vue为什么要求组件模板只能有一个根元素
2019/07/22 Javascript
JavaScript 格式化数字、金额、千分位、保留几位小数、舍入舍去
2019/07/23 Javascript
针对Vue路由history模式下Nginx后台配置操作
2020/10/22 Javascript
二种python发送邮件实例讲解(python发邮件附件可以使用email模块实现)
2013/12/03 Python
跟老齐学Python之大话题小函数(1)
2014/10/10 Python
python通过pil为png图片填充上背景颜色的方法
2015/03/17 Python
python计算文本文件行数的方法
2015/07/06 Python
Python 中 Virtualenv 和 pip 的简单用法详解
2017/08/18 Python
详谈Python高阶函数与函数装饰器(推荐)
2017/09/30 Python
Python多线程应用于自动化测试操作示例
2018/12/06 Python
Python集中化管理平台Ansible介绍与YAML简介
2019/06/12 Python
python验证码图片处理(二值化)
2019/11/01 Python
python 使用shutil复制图片的例子
2019/12/13 Python
Python气泡提示与标签的实现
2020/04/01 Python
css3的图形3d翻转效果应用示例
2014/04/08 HTML / CSS
浅谈HTML5中dialog元素尝鲜
2018/10/15 HTML / CSS
印尼最大的在线购物网站:MatahariMall.com
2016/08/26 全球购物
戴森香港官方网站:Dyson香港
2021/02/11 全球购物
Columbia Sportswear法国官网:全球户外品牌
2020/09/25 全球购物
J2EE系统只能是基于web
2015/09/08 面试题
教育科研先进个人材料
2014/01/26 职场文书
干部考核评语
2014/04/29 职场文书
2014年英语工作总结
2014/12/20 职场文书
中学语文教学反思
2016/02/16 职场文书
创业计划书之农家乐
2019/10/09 职场文书
Mysql分库分表之后主键处理的几种方法
2022/02/15 MySQL
微信小程序APP的生命周期及页面的生命周期
2022/04/19 Javascript