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解析xml文件实例分析
May 27 Python
python监控文件或目录变化
Jun 07 Python
Python 含参构造函数实例详解
May 25 Python
Python字典循环添加一键多值的用法实例
Jan 20 Python
python 多线程重启方法
Feb 18 Python
PyTorch的深度学习入门之PyTorch安装和配置
Jun 27 Python
用Python将Excel数据导入到SQL Server的例子
Aug 24 Python
使用python求解二次规划的问题
Feb 29 Python
Keras实现DenseNet结构操作
Jul 06 Python
用Python制作mini翻译器的实现示例
Aug 17 Python
python3 hdf5文件 遍历代码
May 19 Python
Python的这些库,你知道多少?
Jun 09 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
我的论坛源代码(二)
2006/10/09 PHP
PHP将两个关联数组合并函数提高函数效率
2014/03/18 PHP
destoon实现底部添加你是第几位访问者的方法
2014/07/15 PHP
win平台安装配置Nginx+php+mysql 环境
2016/01/12 PHP
php实现微信企业号支付个人的方法详解
2017/07/26 PHP
php将字符串转换为数组实例讲解
2020/05/05 PHP
javascript编程起步(第二课)
2007/02/27 Javascript
javascript 获取图片颜色
2009/04/05 Javascript
javascript 操作文件 实现方法小结
2009/07/02 Javascript
jquery鼠标放上去显示悬浮层即弹出定位的div层
2014/04/25 Javascript
JQuery中层次选择器用法实例详解
2015/05/18 Javascript
Bootstrap简单表单显示学习笔记
2016/11/15 Javascript
Angularjs 动态改变title标题(兼容ios)
2016/12/29 Javascript
树结构之JavaScript
2017/01/24 Javascript
使用Xcache缓存器加速PHP网站的配置方法
2017/04/22 Javascript
详解vue-cli快速构建项目以及引入bootstrap、jq
2017/05/26 Javascript
vue路由跳转时判断用户是否登录功能的实现
2017/10/26 Javascript
微信小程序module.exports模块化操作实例浅析
2018/12/20 Javascript
微信小程序设置全局请求URL及封装wx.request请求操作示例
2019/04/02 Javascript
JavaScript实现点击自制菜单效果
2021/02/02 Javascript
python下函数参数的传递(参数带星号的说明)
2010/09/19 Python
Python的面向对象思想分析
2015/01/14 Python
Python Flask-web表单使用详解
2017/11/18 Python
以SQLite和PySqlite为例来学习Python DB API
2020/02/05 Python
python对 MySQL 数据库进行增删改查的脚本
2020/10/22 Python
pycharm 快速解决python代码冲突的问题
2021/01/15 Python
美国网上鞋子零售商:Dr. Scholl’s Shoes
2017/11/17 全球购物
美国背景检查、公共记录和人物搜索网站:BeenVerified
2018/02/25 全球购物
铭万公司.net面试题笔试题
2014/07/20 面试题
如何进行有效的自我评价
2013/09/27 职场文书
大一学生假期实习的自我评价
2013/10/12 职场文书
最新计算机专业自荐信
2013/10/16 职场文书
2015年领导班子工作总结
2015/05/23 职场文书
格列夫游记读书笔记
2015/07/01 职场文书
2016领导干部廉洁从政心得体会
2016/01/19 职场文书
如何使用Python提取Chrome浏览器保存的密码
2021/06/09 Python