当前位置: 首页 > news >正文

爬虫-爬取豆瓣top250

1.思路

2.步骤

判断出是get类型

获取页面源代码

加上反扒验证

乱码的话加上utf-8

想办法先拿一个数据

#re.S可以让正则中的.匹配换行符
obj = re.compile(r'<div class="item">.*?<span class="title">(?P<name>.*?)</span>', re.S)#进行正则匹配
result = obj.finditer(pageSource)for item in result:print(item.group("name"))#拿结果

<br>回车&nbsp空格,需要括起来,不需要.*?

.strip()去掉字符串左右空白
import re# 修正后的正则表达式
obj = re.compile(r'<div class="item">.*?<span class="title">(?P<name>.*?)</span>'  # 修正class引号问题r'.*?<p class="">.*?导演:(?P<dao>.*?)&nbsp;'  # 移除多余的r'连接符r'.*?<br>(?P<year>.*?)&nbsp;'  # 修正 |*? 为 .*?r'.*?<span class="rating_num" property="v:average">',re.S
)# 进行正则匹配
result = obj.finditer(pageSource)for item in result:# 打印格式化结果print(f"电影名称:{item.group('name').strip()}")print(f"导演信息:{item.group('dao').strip()}")print(f"上映年份:{item.group('year').strip()}")print("-" * 30)  # 分隔线

3.附上代码

import re
import requests
url = "https://movie.douban.com/top250"
headers ={'User-Agent':"Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko)Chrome/116.0.5845.97 Safari/537.36Core/1.116.537.400 QQBrowser/19.4.6561.400"}rep = requests.get(url,headers=headers)
pageSource = rep.text
# print(pageSource)
# 修正后的正则表达式
obj = re.compile(r'<div class="item">.*?<span class="title">(?P<name>.*?)</span>'r'.*?<p>.*?导演: (?P<dao>.*?)&nbsp;'r'.*?<br>(?P<year>.*?)&nbsp;'r'.*?<span class="rating_num" property="v:average">',re.S
)# 进行正则匹配
result = obj.finditer(pageSource)for item in result:# print(item)# 打印格式化结果print(f"电影名称:{item.group('name').strip()}")print(f"导演信息:{item.group('dao').strip()}")print(f"上映年份:{item.group('year').strip()}")print("-" * 30)  # 分隔线rep.close()

http://www.dtcms.com/a/279271.html

相关文章:

  • webrtc之子带分割下——SplittingFilter源码分析
  • vscode插件之markdown预览mermaid、markmap、markdown
  • 直播推流技术底层逻辑详解与私有化实现方案-以rmtp rtc hls为例-优雅草卓伊凡
  • 当 `conda list` 里出现两个 pip:一步步拆解并卸载冲突包
  • 2025年轨道交通与导航国际会议(ICRTN 2025)
  • 【数据同化案例1】ETKF求解参数-状态联合估计的同化系统(完整MATLAB实现)
  • C#结构体:值类型的设计艺术与实战指南
  • 2025年新能源与可持续发展国际会议(ICNESD 2025)
  • 非正常申请有这么多好处,为什么还要大力打击?
  • TreeSize Free - windows下硬盘空间管理工具
  • 一分钟K线实时数据数据接口,逐笔明细数据接口,分时成交量数据接口,实时五档委托单数据接口,历史逐笔明细数据接口,历史分时成交量数据接口
  • RESTful API 设计规范
  • 为什么资深C++开发者大部分选vector?揭秘背后的硬核性能真相!
  • Nginx配置信息
  • 项目进度图不直观,如何优化展示方式
  • 一种用于医学图像分割的使用了多尺寸注意力Transformer的混合模型: HyTransMA
  • SecretFlow 隐语 (2) --- 隐语架构概览
  • SQL性能调优经验总结
  • Redis缓存解决方案
  • Laravel 中 chunk 分页漏掉数据?深度解析原因与解决方案
  • 深度剖析:动态接口代理核心原理与高级应用
  • 工业4.0时代的安全管理:2025年物联网与AI技术的融合与10+工具实践
  • NSSCTF Web 一点学习
  • 高安全前端架构:Rust-WASM 黑盒技术揭秘
  • 机器学习、深度学习、神经网络之间的关系
  • Binder 概述
  • Linux操作系统从入门到实战(七)详细讲解编辑器Vim
  • 第二章 uniapp实现兼容多端的树状族谱关系图,封装tree-item子组件
  • 自学鸿蒙测试day0
  • 专题:2025机器人产业深度洞察报告|附136份报告PDF与数据下载