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

爬取贴吧的标题和链接

免责声明

感谢您学习本爬虫学习Demo。在使用本Demo之前,请仔细阅读以下免责声明:

  1. 学习和研究目的:本爬虫Demo仅供学习和研究使用。用户不得将其用于任何商业用途或其他未经授权的行为。
  2. 合法性:用户在使用本Demo时,应确保其行为符合法律法规。请务必了解并遵守目标网站的服务条款和隐私政策。
  3. 道德规范:请尊重目标网站的使用条款,不要对其服务器造成过大的负载或影响其正常运行。
  4. 知识产权保护:抓取的数据应仅用于个人学习和研究,不得用于侵犯版权及其他知识产权的行为。
  5. 隐私保护:请勿抓取或存储包含个人敏感信息的数据,避免侵犯他人隐私权。
  6. 责任自负:使用本Demo可能存在一定风险,包括但不限于法律风险、数据丢失、账户封禁等。用户需自行承担所有相关风险和责任。

博主不对因使用本Demo而产生的任何直接或间接损失承担责任。用户应对其使用行为负责,并自行承担所有可能的后果。

重要提示:在使用本Demo前,请确保已详细阅读并理解上述免责声明。如有任何疑虑,请立即停止使用。

学习爬虫的一个demo,只是用了基本的requests和lxml模块

爬取贴吧的某一个话题论坛的帖子标题和链接

import requests
from lxml import etreeclass TieBa:# 初始化请求接口def __init__(self, name):self.url = "https://tieba.xxx.com/f?kw={}".format(name)self.headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36"}# 发送请求,返回请求返回的html数据def get_html(self, url):response = requests.get(url, headers=self.headers)with open("TieBa.html", "wb") as f:f.write(response.content)return response.content.decode('utf-8').replace("<!--", "").replace("-->", "")# 解析htmldef parse_html(self, html):el = etree.HTML(html)a_list = el.xpath('//ul/li//div[@class="threadlist_title pull_left j_th_tit "]/a')data_list = []for a in a_list:temp = {"title": a.text, "href": "https://tieba.xxx.com/" + a.attrib['href']}data_list.append(temp)# 获取下一页try:next_url = "https:{}".format(el.xpath('//*[contains(text(), "下一页")]/@href')[0])except:next_url = Nonereturn data_list, next_url# 保存数据def sava_data(self, data_list):for data in data_list:print(data)def run(self):next_url = self.urlwhile True:html = self.get_html(next_url)data_list, next_url = self.parse_html(html)self.sava_data(data_list)print(next_url)if next_url is None:breakif __name__ == '__main__':tb = TieBa("话题")tb.run()

爬取效果图

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 加拿大云手机:进入加拿大市场的最佳工具
  • UE5 C++在Cesium上给定一个坐标垂直地面射线正交的地形高度
  • 监控系列(八)部署dameng_exporter并对接prometheus
  • CVE-2020-7248 OpenWRT libubox标记二进制数据序列化漏洞(更新中)
  • MySQL SQL 编程练习
  • 深度解读大语言模型中的Transformer架构
  • Jetpack Compose 通过 OkHttp 发送 HTTP 请求的示例
  • FTP传输的两种模式的技术原理和应用
  • vue3+element-plus 实现动态菜单和动态路由的渲染
  • 传神社区|数据集合集第7期|法律NLP数据集合集
  • 【芯智雲城】详解智能电机驱动在汽车中的应用
  • GUI界面开发之tkinter(二) 学习文本组件
  • k8s部署kafka集群
  • Navicat图形化管理工具安装教程
  • vue接入google map自定义marker教程
  • [ JavaScript ] 数据结构与算法 —— 链表
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • css系列之关于字体的事
  • ECMAScript6(0):ES6简明参考手册
  • iOS 系统授权开发
  • iOS小技巧之UIImagePickerController实现头像选择
  • JavaScript 基本功--面试宝典
  • Javascript弹出层-初探
  • jquery cookie
  • LeetCode18.四数之和 JavaScript
  • leetcode98. Validate Binary Search Tree
  • React-Native - 收藏集 - 掘金
  • springboot_database项目介绍
  • SpringCloud集成分布式事务LCN (一)
  • uni-app项目数字滚动
  • Vue2.x学习三:事件处理生命周期钩子
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 基于游标的分页接口实现
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 前嗅ForeSpider采集配置界面介绍
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 小而合理的前端理论:rscss和rsjs
  • 译自由幺半群
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • 终端用户监控:真实用户监控还是模拟监控?
  • Java性能优化之JVM GC(垃圾回收机制)
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • PostgreSQL之连接数修改
  • 函数计算新功能-----支持C#函数
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • ​secrets --- 生成管理密码的安全随机数​
  • ​Spring Boot 分片上传文件
  • ​如何防止网络攻击?
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • !!Dom4j 学习笔记
  • ![CDATA[ ]] 是什么东东
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九