python - 如何将评论刮到数据框
问题描述
我想从这个页面刮掉评论并将它们保存为数据框,但我不下载星级和评论文本。只是文字。我做错了什么?
import csv
import pandas as pd
import requests
from bs4 import BeautifulSoup
page = requests.get("https://www.morele.net/pralka-candy-cs4-1062d3-950636/?sekcja=reviews-all")
soup = BeautifulSoup(page.content, "html.parser",
).find_all("div", {"class":"reviews-item"})
# print(soup)
morele = [div.getText(strip=True) for div in soup]
print(morele)
csv_table = pd.DataFrame(morele)
csv_table = csv_table.reset_index(drop=True)
csv_table.insert(0,'No.',csv_table.index)
解决方案
您大部分时间都在那里 - 只需进一步浏览 DOM,您就可以获得文本。
import requests
from bs4 import BeautifulSoup
page = requests.get("https://www.morele.net/pralka-candy-cs4-1062d3-950636/?sekcja=reviews-all")
soup = BeautifulSoup(page.content, "html.parser",)
data = [{"text":ri.find("div", {"class":"rev-desc"}).getText(strip=True) ,
"stars":ri.find("div", {"class":"rev-stars"}).getText(strip=True)}
for ri in soup.find_all("div", {"class":"reviews-item"})
]
pd.DataFrame(data)
推荐阅读
- dataframe - 将二进制位串转换为数组
- python - 如何在 Django REST 框架中自定义 [未提供身份验证凭据] 错误消息
- sql - Python3 导入 psycopg2 失败
- c# - 为什么这个正则表达式在 powershell 中不起作用?
- reactjs - ReactJS Jest 酶单元测试 axios.get() axios.post()
- matlab - 如何将预训练的网络模型从 Keras 导入 Matlab?
- graphql - 如何将 GraphQL 查询中的变量与值进行比较
- python - 从 Dataframe 的列创建元组
- javascript - 使用 Uppy Tus 的 Vimeo Resumable 方法失败,响应代码:412,响应文本:不支持的版本
- postman - 为什么相同的 URL 会给出不同的结果?