删除Tripadvisor评论、位置

2024-09-30 14:38:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图从TripAdvisor中收集前30家餐厅的数据。我得到了这些餐馆的名单。此外,我能够成功地获取评审标题和日期的数据。我正在使用BeautifulSoup和请求来获取这些数据。但是,以下是问题区域:

在进行评论时,首先无法获得完整的评论长度,其次在某些地方,来自所有者的回复与评论共享相同的标签和级别,因此也会被删除。我想排除这些答复

解析链接

link='https://www.tripadvisor.com.sg/Restaurant_Review-g294265-d1193730-Reviews-Entre_Nous_creperie-Singapore.html'
openlink=requests.get(link)
soup=bs.BeautifulSoup(openlink.text,'lxml')

审核人姓名

^{pr2}$

列表长度为10

审阅文本

rdetaildata=soup.find_all('p',class_='partial_entry')
rdetails=[]
i=0
for i in range(len(rdetaildata)):
rdetails.append(rdetaildata[i].text)
rdetails[i]=rdetails[i].replace("\n","")

由于业主的回复,名单长度为20。我想排除这些所有者的答复。此外,这只提供部分审查

并不是所有的用户都可以看到审阅者的位置,这是很好的,但是我如何以这样一种方式进行筛选,以便在那些没有提到他们位置的用户中输入“NA”。因此,我无法根据评论来定位

评审地点

rlocdata=soup.find_all('span',class_='expand_inline userLocation')
rlocs=[]
i=0
for i in range(len(rlocdata)):
rlocs.append(rlocdata[i].text)
rlocs[i]=rlocs[i].replace("\n","")

由于一位评审员未提及位置,因此列表长度为9。我希望长度为10,其中一个条目为NA,数据不可用。

审阅者贡献和有用的投票也共享同一个标签和类,所以我如何将它们划分为各自的类别

审阅稿件

rcontridata=soup.find_all('span',class_='badgetext')
rcontri=[]
i=0
for i in range(len(rcontri)):
rcontri.append(rcontridata[i].text)
rcontri[i]=rcontri[i].replace("\n","")

同样,这给出了一个长度为18的列表,因为它返回贡献和有用投票数据,因为它们共享相同的标记和类。我想把它们放在不同的对象中

感谢你们所有的帮助!


Tags: 数据textin列表for评论rangeall