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 相关文章推荐
Windows下实现Python2和Python3两个版共存的方法
Jun 12 Python
Pthon批量处理将pdb文件生成dssp文件
Jun 21 Python
Python连接mysql数据库的正确姿势
Feb 03 Python
浅谈python字符串方法的简单使用
Jul 18 Python
教你用 Python 实现微信跳一跳(Mac+iOS版)
Jan 04 Python
Python DataFrame设置/更改列表字段/元素类型的方法
Jun 09 Python
Python 实现输入任意多个数,并计算其平均值的例子
Jul 16 Python
python爬虫 execjs安装配置及使用
Jul 30 Python
Python中私有属性的定义方式
Mar 05 Python
python+selenium+Chrome options参数的使用
Mar 18 Python
关于tf.matmul() 和tf.multiply() 的区别说明
Jun 18 Python
Python使用OpenCV实现虚拟缩放效果
Feb 28 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+java实现自动新闻滚动窗口
2006/10/09 PHP
基于mysql的论坛(3)
2006/10/09 PHP
php无限遍历文件夹示例分享
2014/03/04 PHP
PHP中使用json数据格式定义字面量对象的方法
2014/08/20 PHP
在WordPress中使用PHP脚本来判断访客来自什么国家
2015/12/10 PHP
PHP邮件群发机实现代码
2016/02/16 PHP
Yii视图CGridView实现操作按钮定义地址示例
2016/07/14 PHP
php中this关键字用法分析
2016/12/07 PHP
PHP 范围解析操作符(::)用法分析【访问静态成员和类常量】
2020/04/14 PHP
纯js简单日历实现代码
2013/10/05 Javascript
登陆成功后自动计算秒数执行跳转
2014/01/23 Javascript
引入autocomplete组件时JS报未结束字符串常量错误
2014/03/19 Javascript
JavaScript实现简单图片翻转的方法
2015/04/17 Javascript
举例简介AngularJS的内部语言环境
2015/06/17 Javascript
JS上传图片预览插件制作(兼容到IE6)
2016/08/07 Javascript
微信小程序 实战小程序实例
2016/10/08 Javascript
JavaScript验证知识整理
2017/03/24 Javascript
Vue2.0 多 Tab切换组件的封装实例
2017/07/28 Javascript
JavaScript Array对象使用方法解析
2019/09/24 Javascript
Javascript幻灯片播放功能实现过程解析
2020/05/07 Javascript
React实现todolist功能
2020/12/28 Javascript
[01:27:43]VGJ.S vs TNC Supermajor 败者组 BO3 第三场 6.6
2018/06/07 DOTA
python求斐波那契数列示例分享
2014/02/14 Python
Python实现批量把SVG格式转成png、pdf格式的代码分享
2014/08/21 Python
python爬虫入门教程之糗百图片爬虫代码分享
2014/09/02 Python
python获取图片颜色信息的方法
2015/03/18 Python
python抓取百度首页的方法
2015/05/19 Python
Python实现上下班抢个顺风单脚本
2018/02/07 Python
html+js 实现markdown编辑器效果
2019/10/23 HTML / CSS
BNKR中国官网:带你感受澳洲领先潮流时尚
2018/08/21 全球购物
Ancheer官方户外和运动商店:销售电动自行车
2019/08/07 全球购物
大学生党员自我批评
2014/02/14 职场文书
宾馆仓管员岗位职责
2014/07/27 职场文书
2015年民主生活会发言材料
2014/12/15 职场文书
学校食品安全责任书
2015/01/29 职场文书
百善孝为先:关于孝道的经典语录
2019/10/18 职场文书