吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1692|回复: 21
收起左侧

[Python 原创] 贴吧爬取

  [复制链接]
火火嘛 发表于 2023-11-16 09:30
[Python] 纯文本查看 复制代码
import requests
import time
from bs4 import BeautifulSoup

def get_content(url):
    '''
    分析贴吧的网页文件,整理信息,保存在列表变量中
    '''

    # 初始化一个列表来保存所有的帖子信息:
    comments = []
    # 使用request请求所需url
    html = requests.get(url)

    # 使用BeautifulSoup解析网页内容
    soup = BeautifulSoup(html.text, 'lxml')

    # 找到所有具有‘j_thread_list clearfix’属性的li标签
    liTags = soup.find_all('li', attrs={"class":['j_thread_list', 'clearfix']})

    # 循环遍历li标签
    for li in liTags:
        # 初始化一个字典来存储帖子信息
        comment = {}
        try:
            # 筛选信息,并保存到字典中
            comment['title'] = li.find('a', attrs={"class": ['j_th_tit']}).text.strip()
            comment['link'] = "tieba.baidu.com/" + li.find('a', attrs={"class": ['j_th_tit']})['href']
            comment['name'] = li.find('span', attrs={"class": ['tb_icon_author']}).text.strip()
            comment['time'] = li.find('span', attrs={"class": ['pull-right is_show_create_time']}).text.strip()
            comment['replyNum'] = li.find('span', attrs={"class": ['threadlist_rep_num center_text']}).text.strip()
            comments.append(comment)
        except:
            print('出了点小问题')

    return comments

def Out2File(comments):
    '''
    将爬取到的文件写入到本地
    保存到当前目录的TTBT.txt文件中。
    '''
    with open('TTBT.txt', 'a+', encoding='utf-8') as f:
        for comment in comments:
            f.write('标题:{} \t 链接:{} \t 发帖人:{} \t 发帖时间:{} \t 回复数量:{} \n'.format(
                comment['title'], comment['link'], comment['name'], comment['time'], comment['replyNum']))
        print('当前页面爬取完成')

def main(base_url, deep):
    url_list = []
    # 将所有需要爬取的url存入列表
    for i in range(0, deep):
        url_list.append(base_url + '&pn=' + str(50 * i))
    # 循环写入所有的数据
    for url in url_list:
        print(f"开始爬取:{url}")
        content = get_content(url)
        print(content)
        Out2File(content)
        time.sleep(5)
    print('所有的信息都已经保存完毕!')

base_url = 'https://tieba.baidu.com/f?ie=utf-8&kw=亚运会'
# 设置需要爬取的页码数量
deep = 3

if __name__ == '__main__':
    main(base_url, deep)

免费评分

参与人数 5吾爱币 +11 热心值 +4 收起 理由
hailuo233 + 1 + 1 我很赞同!
Kristin_ + 1 我很赞同!
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
zhouzhuhui + 1 + 1 我很赞同!
wkdxz + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

wkdxz 发表于 2023-11-16 10:13
感谢分享,提个小建议,生成的TXT不太方便进一步操作。如果要分析数据,可以将数据导出为Excel文件或扔数据库里。如果要直观一点,可以生成HTML文件。
XuJingDaoZhang 发表于 2023-11-16 12:04
关于爬取网页数据问题 我有尝试过使用chat-gpt来实现 发现 给出的代码确实可以实现效果 如果想要得到自己更精确的结果 需要对chat-gpt不断的提出修改要求
所以 对于一些的简单的需求 如果对编程有一定的了解 是可以很容易的实现的
 楼主| 火火嘛 发表于 2023-11-16 11:04
wkdxz 发表于 2023-11-16 10:13
感谢分享,提个小建议,生成的TXT不太方便进一步操作。如果要分析数据,可以将数据导出为Excel文件或扔数据 ...

好的,谢谢,后续改一下
chensheng 发表于 2023-11-16 11:08
学习学习
sai609 发表于 2023-11-16 13:03
导出为csv格式,比xlsx轻便多了
fengyingzong 发表于 2023-11-16 13:04
1虽然看不懂,但还是要支持一下
superpeo 发表于 2023-11-16 13:23
支持支持
csmhdd 发表于 2023-11-16 15:22
好,优秀
shuipen 发表于 2023-11-16 16:57
支持,爬虫如果学好了,可以为大数据和AI提供更多的基础数据。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 18:00

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表