gpt4 book ai didi

web-scraping - 用 python 抓取 Booking 评论

转载 作者:行者123 更新时间:2023-12-04 04:53:42 26 4
gpt4 key购买 nike

我正在尝试从该网站获取 Booking.com 评论的标题:

https://www.booking.com/reviews/co/hotel/ibis-bogota-museo.es.html?page=1;r_lang=all;rows=75 ,

哪里r_lang=all基本上说该网站应该以每种语言显示评论。

为了从此页面获取标题,我这样做:

from urllib.request import urlopen
from bs4 import BeautifulSoup

page = urlopen(url)
soup = BeautifulSoup(page)
reviews = soup.findAll("li", {"class": "review_item clearfix "})

for review in reviews:
print(review.find("div", {"class": "review_item_header_content"}).text)

从网站上(见截图),前两个标题应该是“胎盘素”和“它本来可以很棒。”。但是,不知何故,该网址仅加载西类牙语评论:
“仙人掌胎盘”

“La atención de la Chica del restaurante”

“El desayuno estilo 自助餐,完整”

“我很喜欢la ubicación,y la vista。”

“Su ubicación es muy buena。”

我注意到如果在 url 中我更改了“museo.es”。到“museo.en.”,我得到了英文评论的标题。但这是不一致的,因为如果我加载原始 url,我会收到英语、法语、西类牙语等的评论。我该如何解决这个问题?谢谢

enter image description here

最佳答案

服务器可以配置为根据发出请求的浏览器发送不同的响应。添加 User-Agent似乎解决了这个问题。

import urllib.request
from bs4 import BeautifulSoup
url='https://www.booking.com/reviews/co/hotel/ibis-bogota-museo.es.html?page=1;r_lang=all;rows=75'
req = urllib.request.Request(
url,
headers={
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36',
}
)

f = urllib.request.urlopen(req)
soup = BeautifulSoup(f.read().decode('utf-8'),'html.parser')
reviews = soup.findAll("li", {"class": "review_item clearfix "})
for review in reviews:
print(review.find("div", {"class": "review_item_header_content"}).text)

输出:
“Sencillamente placentera”


“It could had been great.”


“will never stay their in the future.”


“Hôtel bien situé.”
...

关于web-scraping - 用 python 抓取 Booking 评论,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55669071/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com