首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >审查tripadvisor的刮表

审查tripadvisor的刮表
EN

Stack Overflow用户
提问于 2017-01-04 12:33:37
回答 1查看 3.1K关注 0票数 2

我是新的网络刮刮在python3。我想刮一下迪拜所有酒店的评论,但问题是我只能刮掉我在网址中描述的酒店评论。有人能告诉我,我怎样才能得到所有的酒店评论,而不含蓄地提供每个酒店的网址?

代码语言:javascript
复制
import requests
from bs4 import BeautifulSoup


importurl = 'https://www.tripadvisor.com/Hotel_Review-g295424-d302778-Reviews-Roda_Al_Bustan_Dubai_Airport-Dubai_Emirate_of_Dubai.html'
r = requests.get(importurl)
soup = BeautifulSoup(r.content, "lxml")
 resultsoup = soup.find_all("p", {"class" : "partial_entry"})
#save the reviews to a test text file locally
for review in resultsoup:
review_list = review.get_text()
print(review_list)
with open('testreview.txt', 'w') as fid: 
    for review in resultsoup:
        review_list = review.get_text()
        fid.write(review_list)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-04 13:04:51

您应该找到所有酒店的索引页,将所有链接放入列表中,而不是循环url列表以获得评论。

代码语言:javascript
复制
import bs4, requests
index_pages = ('http://www.tripadvisor.cn/Hotels-g295424-oa{}-Dubai_Emirate_of_Dubai-Hotels.html#ACCOM_OVERVIEW'.format(i) for i in range(0, 540, 30))
urls = []
with requests.session() as s:
    for index in index_pages:
        r = s.get(index)
        soup = bs4.BeautifulSoup(r.text, 'lxml')
        url_list = [i.get('href') for i in soup.select('.property_title')]
        urls.append(url_list)

退出:

代码语言:javascript
复制
len(urls): 540
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41463942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档