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之Import 模块
Oct 13 Python
python实现带声音的摩斯码翻译实现方法
May 20 Python
Python简单格式化时间的方法【strftime函数】
Sep 18 Python
Python输出带颜色的字符串实例
Oct 10 Python
深入理解python中函数传递参数是值传递还是引用传递
Nov 07 Python
在PyCharm导航区中打开多个Project的关闭方法
Jan 17 Python
Python将列表数据写入文件(txt, csv,excel)
Apr 03 Python
Python如何计算语句执行时间
Nov 22 Python
opencv 图像腐蚀和图像膨胀的实现
Jul 07 Python
python实现mask矩阵示例(根据列表所给元素)
Jul 30 Python
Jupyter Notebook 如何修改字体和大小以及更改字体样式
Jun 03 Python
深入理解Pytorch微调torchvision模型
Nov 11 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 增加了对 .ZIP 文件的读取功能
2006/10/09 PHP
PHP 图片上传代码
2011/09/13 PHP
[原创]php获取数组中键值最大数组项的索引值
2015/03/17 PHP
浅谈PHP的$_SERVER[SERVER_NAME]
2017/02/04 PHP
自定义一个jquery插件[鼠标悬浮时候 出现说明label]
2011/06/27 Javascript
javascript面向对象之对象的深入理解
2015/01/13 Javascript
jQuery实现菜单感应鼠标滑动动画效果的方法
2015/02/28 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【二】
2016/05/10 Javascript
基于jQuery下拉选择框插件支持单选多选功能代码
2016/06/07 Javascript
Bootstrap模态框(modal)垂直居中的实例代码
2016/08/18 Javascript
移动端滑动插件Swipe教程
2016/10/16 Javascript
利用transition实现文字上下抖动的效果
2017/01/21 Javascript
详解Angular2响应式表单
2017/06/14 Javascript
原生JS实现小小的音乐播放器
2017/10/16 Javascript
详解 vue better-scroll滚动插件排坑
2018/02/08 Javascript
Vue组件之高德地图地址选择功能的实例代码
2019/06/21 Javascript
vue获取验证码倒计时组件
2019/08/26 Javascript
使用layer模态框给新页面传值的方法
2019/09/27 Javascript
Vue.js计算机属性computed和methods方法详解
2019/10/12 Javascript
JavaScript常用工具函数大全
2020/05/06 Javascript
[35:44]2014 DOTA2华西杯精英邀请赛 5 24 iG VS VG
2014/05/26 DOTA
[01:01:31]2018DOTA2亚洲邀请赛3月29日小组赛B组 Mineski VS paiN
2018/03/30 DOTA
在漏洞利用Python代码真的很爽
2007/08/26 Python
使用python 3实现发送邮件功能
2018/06/15 Python
利用nohup来开启python文件的方法
2019/01/14 Python
对dataframe数据之间求补集的实例详解
2019/01/30 Python
关于Python解包知识点总结
2020/05/05 Python
canvas实现图片镜像翻转的2种方式
2020/07/22 HTML / CSS
Alba Moda瑞士网上商店:独家意大利时尚女装销售
2016/11/28 全球购物
英国女性化妆品收纳和家具网站:Beautify
2019/12/07 全球购物
澳大利亚顶级美发和美容贸易超市:glamaCo
2020/01/19 全球购物
Shell编程面试题
2012/05/30 面试题
总经理岗位职责
2013/11/09 职场文书
银行实习生的自我评价
2014/01/13 职场文书
课程改革实施方案
2014/03/16 职场文书
学生个人自我鉴定
2014/03/26 职场文书