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连接PostgreSQL数据库的方法
Nov 28 Python
python一键升级所有pip package的方法
Jan 16 Python
关于Django显示时间你应该知道的一些问题
Dec 25 Python
详解如何利用Cython为Python代码加速
Jan 27 Python
利用Pandas 创建空的DataFrame方法
Apr 08 Python
Python实现的端口扫描功能示例
Apr 08 Python
python命令行工具Click快速掌握
Jul 04 Python
python使用writerows写csv文件产生多余空行的处理方法
Aug 01 Python
Python 生成VOC格式的标签实例
Mar 10 Python
使用Numpy对特征中的异常值进行替换及条件替换方式
Jun 08 Python
Python Tornado核心及相关原理详解
Jun 24 Python
python判断all函数输出结果是否为true的方法
Dec 03 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中文件下载功能实现超详细流程分析
2012/06/13 PHP
php读取文件内容的三种可行方法示例介绍
2014/02/08 PHP
PHP临时文件的安全性分析
2014/07/04 PHP
初识PHP
2014/09/28 PHP
PHP strtotime函数用法、实现原理和源码分析
2015/02/04 PHP
如何利用预加载优化Laravel Model查询详解
2017/08/11 PHP
雄兵连第三季海报曝光,艾妮熙德成主角,蔷薇新造型
2021/03/09 国漫
一个JavaScript继承的实现
2006/10/24 Javascript
一种JavaScript的设计模式
2006/11/22 Javascript
JavaScript 处理Iframe自适应高度(同或不同域名下)
2013/03/29 Javascript
javaScript的函数对象的声明详解
2015/02/06 Javascript
js入门之Function函数的使用方法【新手必看】
2016/11/22 Javascript
jQuery插件echarts实现的循环生成图效果示例【附demo源码下载】
2017/03/04 Javascript
修改 bootstrap table 默认detailRow样式的实例代码
2017/07/21 Javascript
vue.js 底部导航栏 一级路由显示 子路由不显示的解决方法
2018/03/09 Javascript
JavaScript设计模式之责任链模式实例分析
2019/01/16 Javascript
[59:15]EG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/29 DOTA
Python脚本获取操作系统版本信息
2016/12/17 Python
python实现八大排序算法(2)
2017/09/14 Python
Python读写及备份oracle数据库操作示例
2018/05/17 Python
Python随机生成身份证号码及校验功能
2018/12/04 Python
Python3按一定数据位数格式处理bin文件的方法
2019/01/24 Python
Python 输出详细的异常信息(traceback)方式
2020/04/08 Python
澳大利亚快时尚鞋类市场:Billini
2018/05/20 全球购物
匈牙利最大的健身制造商和销售商:inSPORTline
2018/10/30 全球购物
医学检验专业个人求职信范文
2013/12/04 职场文书
教你打造完美的创业计划书
2014/01/06 职场文书
节约电力资源的建议书
2014/03/12 职场文书
五一活动标语
2014/06/30 职场文书
小学趣味运动会加油稿
2014/09/25 职场文书
支行行长竞聘报告
2014/11/06 职场文书
应聘教师求职信范文
2015/03/20 职场文书
葬礼主持词
2015/07/02 职场文书
关于食品安全的演讲稿范文(三篇)
2019/10/21 职场文书
晶体管来复再生式二管收音机
2021/04/22 无线电
秀!学妹看见都惊呆的Python小招数!【详细语言特性使用技巧】
2021/04/27 Python