我正在尝试从booking.com中的一个特定的酒店页面获取所有的评论,我尝试过这段代码,但是我没有得到任何打印出来的东西。
这是我尝试过的代码:
import urllib.request
from bs4 import BeautifulSoup
url='https://www.booking.com/hotel/sa/sarwat-park.ar.html?aid=304142&label=gen173nr-1DCAEoggI46AdIM1gEaMQBiAEBmAERuAEHyAEM2AED6AEBiAIBqAIDuAL_oY-aBsACAdICJDE5YzYxY2ZiLWRlYjUtNDRjNC04Njk0LTlhYWY4MDkzYzNhNNgCBOACAQ&sid=c7009aac67195c0a7ef9aa63f6537581&dest_id=6376991;dest_type=hotel;dist=0;group_adults=2;group_children=0;hapos=1;hpos=1;no_rooms=1;req_adults=2;req_children=0;room1=A%2CA;sb_price_type=total;sr_order=popularity;srepoch=1665388865;srpvid=1219386046550156;type=total;ucfs=1&#tab-reviews'
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)发布于 2022-10-10 08:59:51
首先,整个页面上没有"review_item“类。一种更好的方法是使用etree从您现在拥有的评论列表的xPath中查找和获取详细信息。
//*[@id="b2hotelPage"]/div[25]/div/div/div/div[1]/div[2]/div/ul然后你就可以做一些事情
webpage = req.get(URL, headers=headers)
soup = bs(webpage.content, "html.parser")
dom = etree.HTML(str(soup))
listTarget = dom.xpath('//*[@id="b2hotelPage"]/div[25]/div/div/div/div[1]/div[2]/div/ul')这将给出lxml对象的列表,这些对象本质上是您的注释卡。
然后你可以用类似的方式处理它们。
https://stackoverflow.com/questions/74012222
复制相似问题