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魔术方法详解
Feb 14 Python
python打开url并按指定块读取网页内容的方法
Apr 29 Python
shelve  用来持久化任意的Python对象实例代码
Oct 12 Python
Python字典数据对象拆分的简单实现方法
Dec 05 Python
Django中间件实现拦截器的方法
Jun 01 Python
Python中GIL的使用详解
Oct 03 Python
python对html过滤处理的方法
Oct 21 Python
Python之时间和日期使用小结
Feb 14 Python
Django中使用MySQL5.5的教程
Dec 18 Python
完美解决Django2.0中models下的ForeignKey()问题
May 19 Python
几款好用的python工具库(小结)
Oct 20 Python
python urllib和urllib3知识点总结
Feb 08 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和javascript之间变量的传递实现代码
2012/12/19 PHP
php 根据url自动生成缩略图并处理高并发问题
2014/01/23 PHP
Session的工作机制详解和安全性问题(PHP实例讲解)
2014/04/10 PHP
PHP二维关联数组的遍历方式(实例讲解)
2017/10/18 PHP
PHP之多条件混合筛选功能的实现方法
2019/10/09 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
jQuery制作可自定义大小的拼图游戏
2015/03/30 Javascript
javascript实现页面刷新时自动清空表单并选中的方法
2015/07/18 Javascript
JavaScript中点击事件的写法
2016/06/28 Javascript
网络传输协议(http协议)
2016/11/18 Javascript
详解JS几种变量交换方式以及性能分析对比
2016/11/25 Javascript
Node.js制作简单聊天室
2017/01/12 Javascript
js实现密码强度检验
2017/01/15 Javascript
基于JavaScript实现带数据验证和复选框的表单提交
2017/08/23 Javascript
详解使用vscode+es6写nodejs服务端调试配置
2017/09/21 NodeJs
JavaScript实现图片懒加载的方法分析
2018/07/05 Javascript
使用 node.js 模仿 Apache 小部分功能
2019/07/07 Javascript
使用typescript构建Vue应用的实现
2019/08/26 Javascript
vue控制多行文字展开收起的实现示例
2019/10/11 Javascript
JavaScript代码异常监控实现过程详解
2020/02/17 Javascript
vue-autoui自匹配webapi的UI控件的实现
2020/03/20 Javascript
jQuery实现鼠标拖拽登录框移动效果
2020/09/13 jQuery
vue.js+element 默认提示中英文操作
2020/11/11 Javascript
python 使用get_argument获取url query参数
2017/04/28 Python
Python实现XML文件解析的示例代码
2018/02/05 Python
django从请求到响应的过程深入讲解
2018/08/01 Python
pycharm2020.1.2永久破解激活教程,实测有效
2020/10/29 Python
璀璨的珍珠、密钉和个性化珠宝:Lily & Roo
2021/01/21 全球购物
电脑饰品店的创业计划书
2014/01/21 职场文书
连锁酒店店长职责范本
2014/02/13 职场文书
酒店管理求职信
2014/06/09 职场文书
学生会辞职信
2015/03/02 职场文书
《惊弓之鸟》教学反思
2016/02/20 职场文书
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
2021/10/16 Python
python数据可视化JupyterLab实用扩展程序Mito
2021/11/20 Python
Vue全局事件总线你了解吗
2022/02/24 Vue.js