从python爬取豆瓣读书网中的评论人数和评分怎么进行数据处理
时间: 2024-01-24 21:20:42 浏览: 70
可以使用Python中的BeautifulSoup库来从豆瓣读书网中爬取评论人数和评分,并使用Pandas库进行数据处理。
以下是一个示例代码,可以爬取《活着》这本书的前10页评论的评论人数和评分,并将其存储为一个DataFrame对象:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
url = "https://book.douban.com/subject/4913064/comments/"
comments = []
for i in range(10):
r = requests.get(url + "?start={}&limit=20&status=P&sort=new_score".format(i*20))
soup = BeautifulSoup(r.text, 'html.parser')
comment_items = soup.find_all('div', class_='comment-item')
for item in comment_items:
rating = item.find('span', class_='rating')['title']
comment = item.find('p', class_='comment-content').text.strip()
comments.append({'rating': rating, 'comment': comment})
df = pd.DataFrame(comments)
df['rating'] = df['rating'].str.extract(r'(\d+)')
df['rating'] = df['rating'].astype(int)
```
这段代码首先定义了一个url变量,它指向《活着》这本书的评论页面。然后,我们使用requests库请求这个页面,使用BeautifulSoup库解析HTML内容,找到所有的评论项。
对于每个评论项,我们提取评分和评论文本,将它们存储为一个字典对象,并将这些字典对象添加到一个列表中。最后,我们使用Pandas库将这个列表转换为一个DataFrame对象,并使用正则表达式从评分中提取数字,并将其转换为整数类型。
阅读全文