requests 爬取贴吧的标题和链接

免责声明

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

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

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

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

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

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

import requests
from lxml import etree


class 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("-->", "")

    # 解析html
    def 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 = None

        return data_list, next_url

    # 保存数据
    def sava_data(self, data_list):
        for data in data_list:
            print(data)

    def run(self):
        next_url = self.url
        while 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:
                break


if __name__ == '__main__':
    tb = TieBa("话题")
    tb.run()

爬取效果图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

7 号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值