zoukankan      html  css  js  c++  java
  • 爬取心理学贴吧的内容

    首先观察网页:

    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')

     接下来就可以整理数据:

    代码:

  • 相关阅读:
    Storm应用系列之——集成Kafka
    Storm常见模式——分布式RPC
    Storm常见模式——流聚合
    博客迁移
    设计模式学习笔记
    JStorm模型设计
    MySQL学习笔记
    JAVA学习笔记
    JavaScript学习笔记
    用ACE来写代码
  • 原文地址:https://www.cnblogs.com/Tqin/p/10834885.html
Copyright © 2011-2022 走看看