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实现探测socket和web服务示例
Mar 28 Python
python实现微信小程序自动回复
Sep 10 Python
在Python中获取两数相除的商和余数方法
Nov 10 Python
利用Python正则表达式过滤敏感词的方法
Jan 21 Python
Django框架HttpResponse对象用法实例分析
Nov 01 Python
python如何基于redis实现ip代理池
Jan 17 Python
pytorch实现Tensor变量之间的转换
Feb 17 Python
python不相等的两个字符串的 if 条件判断为True详解
Mar 12 Python
探秘TensorFlow 和 NumPy 的 Broadcasting 机制
Mar 13 Python
python类共享变量操作
Sep 03 Python
详解python3 GUI刷屏器(附源码)
Feb 18 Python
Python 文本滚动播放器的实现代码
Apr 25 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 flush类输出缓冲剖析
2008/10/19 PHP
PHP 加密/解密函数 dencrypt(动态密文,带压缩功能,支持中文)
2009/01/30 PHP
PHP中替换换行符的几种方法小结
2012/10/15 PHP
Zend的MVC机制使用分析(二)
2013/05/02 PHP
php中{}大括号是什么意思
2013/12/01 PHP
php实现12306火车票余票查询和价格查询(12306火车票查询)
2014/01/14 PHP
PHP中UNIX时间戳和日期间的转换与计算实例
2014/11/19 PHP
jQuery列表拖动排列具体实现
2013/11/04 Javascript
Jquery的Tabs内容轮换效果实现代码,几行搞定
2014/02/12 Javascript
页面按钮禁用与解除禁用的方法
2014/02/19 Javascript
javascript处理表单示例(javascript提交表单)
2014/04/28 Javascript
使用JQuery库提供的扩展功能实现自定义方法
2014/09/09 Javascript
javascript包装对象实例分析
2015/03/27 Javascript
简述AngularJS的控制器的使用
2015/06/16 Javascript
详解jquery事件delegate()的使用方法
2016/01/25 Javascript
js控制按钮,防止频繁点击响应的实例
2017/02/15 Javascript
微信小程序-getUserInfo回调的实例详解
2017/10/27 Javascript
express中static中间件的具体使用方法
2019/10/17 Javascript
微信小程序实现吸顶特效
2020/01/08 Javascript
es6函数之尾调用优化实例分析
2020/04/25 Javascript
实例分析javascript中的异步
2020/06/02 Javascript
Python实现的一个自动售饮料程序代码分享
2014/08/25 Python
python 根据正则表达式提取指定的内容实例详解
2016/12/04 Python
使用Django启动命令行及执行脚本的方法
2018/05/29 Python
用python做游戏的细节详解
2019/06/25 Python
Python人工智能之路 jieba gensim 最好别分家之最简单的相似度实现
2019/08/13 Python
Python如何给你的程序做性能测试
2020/07/29 Python
解决html5中video标签无法播放mp4问题的办法
2017/05/07 HTML / CSS
TIME时代杂志台湾总代理:台时亚洲
2018/10/22 全球购物
护理专业的自荐信
2013/10/22 职场文书
英语教学随笔感言
2014/02/20 职场文书
《和田的维吾尔》教学反思
2014/04/14 职场文书
啦啦队口号大全
2014/06/16 职场文书
求职简历自我评价范文
2015/03/10 职场文书
ROS系统将python包编译为可执行文件的简单步骤
2021/07/25 Python
python工具dtreeviz决策树可视化和模型可解释性
2022/03/03 Python