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入门_浅谈逻辑判断与运算符
May 16 Python
Python基础练习之用户登录实现代码分享
Nov 08 Python
Python键盘输入转换为列表的实例
Jun 23 Python
windows下cx_Freeze生成Python可执行程序的详细步骤
Oct 09 Python
python 顺时针打印矩阵的超简洁代码
Nov 14 Python
Python实现截取PDF文件中的几页代码实例
Mar 11 Python
python通过http下载文件的方法详解
Jul 26 Python
Python实现代码统计工具
Sep 19 Python
Pandas之read_csv()读取文件跳过报错行的解决
Apr 21 Python
如何搭建pytorch环境的方法步骤
May 06 Python
python Tornado框架的使用示例
Oct 19 Python
python 获取谷歌浏览器保存的密码
Jan 06 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写的简易聊天室代码
2011/06/04 PHP
php中使用key,value,current,next和prev函数遍历数组的方法
2015/03/17 PHP
PHP之图片上传类实例代码(加了缩略图)
2016/06/30 PHP
innerHTML与jquery里的html()区别介绍
2012/10/12 Javascript
JavaScript函数的4种调用方法详解
2014/04/22 Javascript
跟我学Nodejs(一)--- Node.js简介及安装开发环境
2014/05/20 NodeJs
利用VUE框架,实现列表分页功能示例代码
2017/01/12 Javascript
bootstrap——bootstrapTable实现隐藏列的示例
2017/01/14 Javascript
JavaScript实现二叉树定义、遍历及查找的方法详解
2017/12/20 Javascript
使用vuex缓存数据并优化自己的vuex-cache
2018/05/30 Javascript
js实现图片无缝循环轮播
2019/10/28 Javascript
[06:43]2018DOTA2国际邀请赛寻真——VGJ.Thunder
2018/08/11 DOTA
python通过yield实现数组全排列的方法
2015/03/18 Python
Python装饰器入门学习教程(九步学习)
2016/01/28 Python
使用Python进行目录的对比方法
2018/11/01 Python
python常用函数与用法示例
2019/07/02 Python
如何在keras中添加自己的优化器(如adam等)
2020/06/19 Python
用Python开发app后端有优势吗
2020/06/29 Python
关于python scrapy中添加cookie踩坑记录
2020/11/17 Python
Django+Django-Celery+Celery的整合实战
2021/01/20 Python
python 基于UDP协议套接字通信的实现
2021/01/22 Python
is_file和file_exists效率比较
2021/03/14 PHP
Hoover胡佛官网:美国吸尘器和洗地机品牌
2019/01/09 全球购物
马歇尔耳机官网:Marshall Headphones
2020/02/04 全球购物
写好自荐信要注意的问题
2013/11/10 职场文书
晚宴邀请函范文
2014/01/15 职场文书
致百米运动员广播稿
2014/01/29 职场文书
儿园租房协议书范本
2014/12/02 职场文书
医院合作意向书范本
2015/05/08 职场文书
幼儿园老师工作总结2015
2015/05/22 职场文书
元旦主持词开场白
2015/05/29 职场文书
运动员入场前导词
2015/07/20 职场文书
银行文明优质服务培训心得体会
2016/01/09 职场文书
SQLServer2019 数据库环境搭建与使用的实现
2021/04/08 SQL Server
python 标准库原理与用法详解之os.path篇
2021/10/24 Python
MyBatis配置文件解析与MyBatis实例演示
2022/04/07 Java/Android