• 爬取心理学贴吧的内容


    首先观察网页:

    https://tieba.baidu.com/f?kw=%E5%BF%83%E7%90%86%E5%AD%A6&ie=utf-8&pn=50

     

    只需要改变pn的值就能获取到网页,通过网页源代码来获取对应的想要数据

    代码:

    # 导入需要的包
    import time
    
    # 模拟http请求 和 解析内容 的包
    import requests
    from bs4 import BeautifulSoup
    
    # 数据展示 的包
    import numpy as np
    import pandas as pd
    # 设置点击量阈值
    M = 3000
    
    # get请求模版
    template_url = "https://tieba.baidu.com/f?kw=%E5%BF%83%E7%90%86%E5%AD%A6&ie=utf-8&pn={}"
    # 从一页中提取 帖子
    def extra_from_one_page(page_lst):
        '''从一页中提取 帖子'''
        # 临时列表保存字典数据,每一个帖子都是一个字典数据
        tmp = []
    
        for i in page_lst:
            titie=i.find(class_='j_th_tit').text
            dic={}
            dic['title']=titie
            tmp.append(dic)
    
        return tmp
    # 爬取n页的数据
    def search_n_pages(n):
        '''爬取n页数据'''
        target = []
    
        # 发起n次的get请求
        for i in range(n):
            # 跟踪进度
            print('page:', i)
    
            # 按照浏览贴吧的自然行为,每一页50条
            target_url = template_url.format(50*i)
            res = requests.get(target_url)
    
            # 转为 bs 对象
            soup = BeautifulSoup(res.text, 'html.parser')
            # print(soup)
            # 获取该页帖子列表
            page_lst = soup.find_all(class_='j_thread_list')
            print(page_lst)
            # 该页信息保存到target
            target.extend(extra_from_one_page(page_lst))
    
            # 休息0.2秒再访问,友好型爬虫
            time.sleep(0.2)
    
    
        return target
    # 爬取贴吧前10页数据
    d = search_n_pages(10)
    # 转化为pandas.DataFrame对象
    data = pd.DataFrame(d)
    
    # 导出到excel表格
    # data.to_excel('心理学贴吧.xlsx')
    pd.DataFrame(data).to_csv('贴吧爬取.csv', encoding='utf-8')

     接下来就可以整理数据:

    代码:

  • 相关阅读:
    《修改代码的艺术》读书笔记
    《软件架构师的12项修炼》阅读笔记2
    《软件架构师的12项修炼》阅读笔记1
    python 包
    《编程珠玑》阅读笔记1
    Darknet和YOLO的区别和关系
    darknet
    yolov3
    软件质量属性
    酷客 机器学习十讲(一)机器学习介绍
  • 原文地址:https://www.cnblogs.com/Tqin/p/10834885.html
Copyright © 2020-2023  润新知