当前位置: 首页 > 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.lryc.cn/news/587506.html

相关文章:

  • Android 16系统源码_窗口动画(一)窗口过渡动画层级图分析
  • Android编译系统——基础介绍(一)
  • LVS集群技术
  • 17.Python 中的相等性比较:== vs is
  • 云原生核心技术解析:Docker vs Kubernetes vs Docker Compose
  • 深入了解linux系统—— 进程信号的保存
  • 数据可视化全流程设计指南
  • Vue 低代码可视化表单设计器 FcDesigner v3.3 版本发布!表格布局升级+精细化权限控制
  • 前端常见十大问题讲解
  • Spark 之 like 表达式
  • SpringMVC4
  • UI前端与数字孪生结合实践探索:智慧物流的仓储自动化管理系统
  • pycharm恢复出厂设置,可以解决大多数pycharm存在的问题
  • 创建自定义Dataset类与多分类问题实战
  • 怎么解决数据库幻读问题
  • 【图片识别改名】水印相机拍的照片如何将照片的名字批量改为水印内容?图片识别改名的详细步骤和注意事项
  • 设计模式笔记_结构型_桥接模式
  • vscode 安装 esp ide环境
  • 基于MATLAB的LSTM长短期记忆神经网络的数据回归预测方法应用
  • 02 51单片机之LED闪烁
  • 前端同学,你能不能别再往后端传一个巨大的JSON了?
  • 构建完整工具链:GCC/G++ + Makefile + Git 自动化开发流程
  • 前端接入海康威视摄像头的三种方案
  • autoware激光雷达和相机标定
  • JAVA 设计模式 工厂
  • Docker搭建Redis分片集群
  • 鸿蒙应用开发: 鸿蒙项目中使用私有 npm 插件的完整流程
  • Kotlin集合接口
  • 常用的OTP语音芯片有哪些?
  • 前端性能与可靠性工程系列: 渲染、缓存与关键路径优化