python爬取论坛的数据,包括标题,作者,点击量和回复量

本文介绍如何使用Python爬虫抓取论坛的标题、作者、点击量和回复量信息。首先,分别获取标题和作者以及点击量和回复量数据;接着,进行数据清洗,将数据整理成DataFrame格式;然后,通过添加关键列,合并两个数据集;最后,删除不必要的关键列并以CSV格式保存文件。
部署运行你感兴趣的模型镜像

1.数据的爬取和清洗

(1)标题和作者的获取以及数据整理

from bs4 import BeautifulSoup
data_all =[]
for i in range(0,10):
    url = 'http://bbs.tianya.cn/list-no02-1.shtml'
    douban_data = requests.get(url)
    soup = BeautifulSoup(douban_data.text,'lxml')
    titles = soup.select('tr.bg td.td-title a')
    author = soup.select('tr.bg td a.author')
    
    for title,price in zip(titles,author):
         data = {'title':title.get_text().strip().split()[0],
                 'author':price.get_text().strip()}   
#         print(data)
         data_all.append(data)
len(data_all)

(2)点击量和回复量的获取(这里应该循环获取,因为每一个单页的网址不一样)

import requests
from bs4 import BeautifulSoup
url = 'http://bbs.tianya.cn/list.jsp?item=no02&nextid=1556923587000'
douban_data = requests.get(url)
soup = BeautifulSoup(douban_data.text,'lxml')
a_all = soup.select('td')

(3)点击量和回复量数据的整理

import pandas as pd
j=2
k=3
data_all1 = []
for click in zip(a_all):
#    print(a_all[3])
    if j<=400 and k<= 400:
        a_data = {'click':a_all[j].get_text().strip(),
                 'response':a_all[k].get_text().strip()}
#        print(a_all[k].get_text().strip())
        j = j+5
        k = j+1
        data_all1.append(a_data)

(4)两个数据的合并

①首先将list格式的数据转化为DataFrame格式
1)import pandas as pd
data_pd1 = pd.DataFrame(data1,columns = ['author','title'])
2)import pandas as pd
data_pd2 = pd.DataFrame(data3,columns = ['click','response'])
②为合并添加一组关键列
#生成一组不重复的随机数,用于作为两个DataFrame合并的key
import random
listww = random.sample(range(0,400),400)
③为两组list添加关键列
data_s['key'] = listww
data_s
2)data_f = pd.DataFrame(data_f,columns = ['click','response','key'])
data_f['key'] = listww
data_ft
④合并
result = pd.merge(data_s,data_f,on='key')
⑤删除关键列
re = result.drop('key',axis=1)

(5)保存文件–格式为csv

re.to_csv('sqy.csv',index=False)

您可能感兴趣的与本文相关的镜像

Dify

Dify

AI应用
Agent编排

Dify 是一款开源的大语言模型(LLM)应用开发平台,它结合了 后端即服务(Backend as a Service) 和LLMOps 的理念,让开发者能快速、高效地构建和部署生产级的生成式AI应用。 它提供了包含模型兼容支持、Prompt 编排界面、RAG 引擎、Agent 框架、工作流编排等核心技术栈,并且提供了易用的界面和API,让技术和非技术人员都能参与到AI应用的开发过程中

使用Python爬取上证股吧网页可以通过以下步骤实现: 1. **安装必要的库**: - `requests`:用于发送HTTP请求。 - `BeautifulSoup`:用于解析HTML内容。 - `pandas`:用于处理数据。 可以使用以下命令安装这些库: ```bash pip install requests beautifulsoup4 pandas ``` 2. **发送HTTP请求**: 使用`requests`库发送HTTP请求获取网页内容。 3. **解析网页内容**: 使用`BeautifulSoup`解析获取到的HTML内容,提取所需的数据。 4. **处理存储数据**: 将提取到的数据进行处理存储,可以使用`pandas`库将数据保存为CSV文件。 以下是一个简单的示例代码,演示如何爬取上证股吧网页的股票信息: ```python import requests from bs4 import BeautifulSoup import pandas as pd # 上证股吧的URL url = 'http://guba.eastmoney.com/list,sh.html' # 发送HTTP请求 response = requests.get(url) response.encoding = 'gbk' # 根据网页编码设置 # 解析网页内容 soup = BeautifulSoup(response.text, 'html.parser') # 查找股票信息所在的表格 table = soup.find('table', {'id': 'articlelistnew'}) # 提取表格中的每一行 rows = table.find_all('tr') # 存储股票信息的列表 data = [] # 遍历每一行,提取股票信息 for row in rows[1:]: # 跳过表头 cols = row.find_all('td') title = cols[1].get_text(strip=True) author = cols[2].get_text(strip=True) time = cols[3].get_text(strip=True) click = cols[4].get_text(strip=True) reply = cols[5].get_text(strip=True) data.append({ '标题': title, '作者': author, '时间': time, '点击量': click, '回复': reply }) # 将数据转换为DataFrame df = pd.DataFrame(data) # 保存为CSV文件 df.to_csv('shangzheng_guba.csv', index=False, encoding='utf-8-sig') print("数据已保存到shangzheng_guba.csv") ``` 这个示例代码会爬取上证股吧网页上的股票信息,并将结果保存为一个CSV文件。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值