- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正面临网络抓取问题。我打算在 tripadvisor 上收集一些评论。我想使用 rvest
并获得所有语言的评论。来自 this questions我知道一种可能的方法是在 url 的末尾使用 ?filterLang=ALL
。在网络浏览器中,它确实有效。示例:
是否提供选择“所有语言”的评论(您可以看到很多法语评论)。这是我的问题:我尝试获取评论的标题:
library(rvest)
url <- "https://www.tripadvisor.com/Restaurant_Review-g187147-d2013853-Reviews-114_Faubourg-Paris_Ile_de_France.html?filterLang=ALL"
reviews_html <- read_html(url)
reviews_html %>%
html_nodes(xpath = "//span[@class='noQuotes']") %>%
html_text()
[1] "I've never visited this restaurant," "Perfect"
[3] "Memorable experience" "Tasty"
[5] "Absolutely spectacular" "Excellent"
[7] "Wonderfullll" "A Perfect Evening"
[9] "Dinner " "Perfect dinner and evening"
我只有英文的。奇怪的是:如果我尝试获取页数:
reviews_html %>%
html_nodes(xpath = "//div[@data-tab='TABS_REVIEWS']//a[@data-page-number]")%>%
html_text()
[1] "Next" "1" "2" "3" "4" "5" "6" "176"
我有对应“所有语言”选项的评论页数!如果与没有选择语言的情况比较
url <- "https://www.tripadvisor.com/Restaurant_Review-g187147-d2013853-Reviews-114_Faubourg-Paris_Ile_de_France.html"
reviews_html <- read_html(url)
reviews_html %>%
html_nodes(xpath = "//span[@class='noQuotes']") %>%
html_text()
[1] "I've never visited this restaurant," "Perfect"
[3] "Memorable experience" "Tasty"
[5] "Absolutely spectacular" "Excellent"
[7] "Wonderfullll" "A Perfect Evening"
[9] "Dinner " "Perfect dinner and evening"
我得到了相同的评论,但是:
reviews_html %>%
html_nodes(xpath = "//div[@data-tab='TABS_REVIEWS']//a[@data-page-number]")%>%
html_text()
[1] "Next" "1" "2" "3" "4" "5" "6" "61"
我得到对应于英文语言选择的页数。我也尝试设置 cookies:
library(httr)
url <- "https://www.tripadvisor.com/Restaurant_Review-g187147-d2013853-Reviews-114_Faubourg-Paris_Ile_de_France.html?filterLang=ALL"
httr::GET(url,
set_cookies(`TALanguage` = "ALL",
`Domain` = ".tripadvisor.com"))%>%
read_html()%>%
html_nodes(xpath = "//span[@class='noQuotes']") %>%
html_text()
但是也没用。有谁知道发生了什么,以及我可以做些什么来使用 rvest 获得所有语言的评论?
最佳答案
当您手动选择过滤器时,在同一 url 上有一个 POST
调用。在表单正文中设置 filterLang=ALL
会正确返回数据:
library(rvest)
library(httr)
reviews_html <- POST(
"https://www.tripadvisor.com/Restaurant_Review-g187147-d2013853-Reviews-114_Faubourg-Paris_Ile_de_France.html",
add_headers('x-requested-with'= 'XMLHttpRequest'),
body = list(
preferFriendReviews = "FALSE",
t = "",
q = "", # filter by mention, try "france"
filterSeasons = "", # "1" is mar-may / "2" is jun-aug / "3" is sep-nov / "4" is dec-feb
filterLang = "ALL", # try "zhCN" or "fr"
filterSafety = "FALSE",
filterSegment = "", # "3" is families / "2" is couples / "5" is solo / "1" is business / "4" is friends
trating = "", # stars: "5" / "4" / "3" / "2" / "1" / "0"
isLastPoll = "false",
changeSet = "REVIEW_LIST"
),
encode = "form") %>%
read_html()
reviews <- reviews_html %>%
html_nodes(xpath = "//span[@class='noQuotes']") %>%
html_text()
print(reviews)
pages <- reviews_html %>%
html_nodes(xpath = "//div[@data-tab='TABS_REVIEWS']//a[@data-page-number]")%>%
html_text()
print(pages)
在上面的代码中,如果您需要这些过滤器,我添加了一些关于字段的描述
输出:
[1] "I've never visited this restaurant," "Excellente expérience"
[3] "Du grand art" "Promesse tenue"
[5] "Une soirée de rêve en famille" "Délicieux !!! "
[7] "Une expérience inoubliable" "UN CERTAIN REGARD"
[9] "Excellent soiree en couple" "Une soirée magnifique"
[1] "Next" "1" "2" "3" "4" "5" "6" "176"
关于rvest:语言选择在 tripadvisor 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66916363/
我是 python3 网络抓取的新手。我想抓取迪拜所有酒店的评论,但问题是我只能抓取我在 url 中描述的酒店评论。谁能告诉我如何在不隐式提供每家酒店的网址的情况下获得所有酒店评论? import r
我的目标是在我的应用程序中与其他排名系统一起显示 TripAdvisor 评分排名。请记住,我的应用程序是 B2B 应用程序,而不是 B2C。 即使阅读了开发人员文档,我仍然无法理解的是我最终应该要求
我正面临网络抓取问题。我打算在 tripadvisor 上收集一些评论。我想使用 rvest 并获得所有语言的评论。来自 this questions我知道一种可能的方法是在 url 的末尾使用 ?f
我们目前正在开展一个 NLP 项目,需要一个旨在从 tripadvisor.com 中提取的语料库。我们期望输出有两种类型:评论和该评论的评级。我的问题是: 有没有最适合此目的的抓取工具?一定要简单易
我有一个场景,我需要单击tripadvisor内的气泡评级小部件的第五个气泡。 HTML 代码是: 我正在尝试使用以下代码片段: Actions action = new Actions(dri
在网站的页脚中,我想包含社交小部件。 Facebook 一个工作得很好,Tripadvisor 有很多行代码,而且没有真正的风格,跳出我的页脚等。 我最终如何为未设置样式的小部件设置样式?如果我更改代
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭1
我一直在 BS4 中构建一个网络抓取工具,但遇到了困难。我正在使用 Trip Advisor 作为我将要追踪的其他数据的测试,但无法隔离“整个”评论的标签。这是一个例子: https://www.tr
刚刚接受了 TripAdvisor 的电话面试(没有成功)。 我得到了下面的代码并要求我实现 findBestTravelAlert(用 Java)。 给定一个 TravelAlert 对象列表,找到
我想获取我正在使用 TripAdvisor API 的特定酒店的评分和评论。 我得到了这个链接: api.tripadvisor.com/api/partner/2.0/location/**8957
我想获取我正在使用 TripAdvisor API 的特定酒店的评分和评论。 我得到了这个链接: api.tripadvisor.com/api/partner/2.0/location/**8957
我正在尝试将 Tripadvisor 小部件 (rave) 添加到通过 Ajax 加载的页面。这是小部件代码: Read 37 reviews of Bond
我正在使用 Python-Scrapy 来删除 tripadvisor 成员(member)页面的评论。这是我正在使用的网址:http://www.tripadvisor.com/members/sc
在 TripAdvisor.com 景点页面上,景点网站的链接似乎以某种方式加密。这是一个例子: Website 这个链接是如何建立的,这样做的原因是什么? 最佳答案 aHref 值是一个
嗨,我是 angularjs 新手。我想向我的 angularjs 应用程序添加一个 tripadvisor 小部件。小部件代码如下:
我想知道如何从 Trip Advisor Api 获取特定地点的所有评论。现在我的电话是 http://api.tripadvisor.com/api/partner/2.0/location/SOM
我正在尝试抓取特定 TripAdivsor 页面的所有图像,但在 Selenium 中使用 find_elements_by_class_name 函数时,它没有给我任何值。我很困惑,因为这是我想要迭
我正在尝试将 Tripadvisor 评分小部件添加到我的 React 网站(请参阅下面的代码)。目前,只有 Tripadvisor 日志正在加载,没有评级信息。我认为小部件中的脚本没有运行,我不确定
本周,我开始为一位经营旅游公司的家庭成员开发我的第一个 WordPress 网站,该成员有一个非常过时的网站,我决定从头开始构建该网站。 一切都很顺利,直到我决定将他的一些 TripAdvisor 小
来自 this页面,我想抓取列表“迈阿密的事件类型”(您可以在页面末尾附近找到它)。这是我到目前为止所拥有的: import requests from bs4 import BeautifulSou
我是一名优秀的程序员,十分优秀!