Python爬虫:爬取抽屉网

本文介绍了一种使用Python和XPath爬取抽屉网段子的方法,详细展示了如何抓取段子的作者、点赞数、评论数及内容,并通过实例代码讲解了数据保存过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#用xpath爬取抽屉网
#翻页爬取抽屉网的段子
#爬取内容为段子的作者、点赞数、评论数、内容

1、导入模块

import requests
import time
from lxml import etree

2、#创建保存函数

def save_info(contents):
    with open('./段子.doc', 'a', encoding='utf-8', newline='\n')as f:
        f.write(contents+'\n')

3、# 创建函数获取页面 def get_page(url):

def get_page(url):
    headers = {
                'Origin': 'https://dig.chouti.com',
                'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) \
                 AppleWebKit/537.36 (KHTML, like Gecko) \
                 Chrome/63.0.3239.26 Safari/537.36 Core/1.63.6788.400 QQBrowser/10.3.2727.400'
                }
    try:
        resp = requests.get(url, headers=headers)
        page_source = resp.text
        return page_source
    except:
        print("出错了")

4、# 创建解析函数 def paser_page(url):

def paser_page(url):
    html = get_page(url)
    selector1 = etree.HTML(html)
    items = selector1.xpath('//*[@class="news-content"]')
    for item in items:
        content = item.xpath('./div[1]/a/text()')[0].strip()
        name = item.xpath('./div[2]/a[4]/b/text()')[0].strip()
        zan_number = item.xpath('./div[2]/a[1]/b/text()')[0].strip()
        comments = item.xpath('./div[2]/a[2]/b/text()')[0].strip()
        # 创建列表
        info = [name,  zan_number, comments, content]
        # 创建字典
        info_dic = {
            "作者": name,
            "点赞数": zan_number,
            "评论数": comments,
            "内容": content
        }
        #将列表转化为str进行保存
        save_info('\t'.join(info))
        # 编辑器中以字典形式显示
        print(info_dic)

5、# 创建主函数 def main():

def main():
    info_title = ["作者", "点赞数", "评论数", "内容"]
    save_info('\t'.join(info_title))
    urls = ['https://dig.chouti.com/r/scoff/hot/%s' % x for x in range(1, 4)]
    for i, url in enumerate(urls):
        paser_page(url)
        print(i)
        time.sleep(2)

6、# 调用函数并运行

if __name__ == '__main__':
    main()

最后爬取保存如下:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

影雀

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

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

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

打赏作者

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

抵扣说明:

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

余额充值