为了账号安全,请及时绑定邮箱和手机立即绑定

从侧边栏小部件 selenium python 中抓取评论

从侧边栏小部件 selenium python 中抓取评论

海绵宝宝撒 2024-01-04 17:23:09
我正在尝试练习从 booking.com 抓取评论。我随机选择一家酒店并让 selenium 获取元素,然后尝试定位以获取来自 BeautifulSoup 的评论,如下所示,但结果没有返回任何数据。我可以给我一些建议吗?出了什么问题以及如何解决?from selenium import webdriverfrom bs4 import BeautifulSoupdriver = webdriver.Chrome(executable_path="./driver/chromedriver.exe")driver.get("https://booking.com")driver.find_element_by_css_selector("input[class*='sb-searchbox__input']").send_keys("Eden The Residence at The Sea")driver.find_element_by_css_selector("button[type='submit']").click()driver.find_element_by_xpath("//span[contains(text(),'Eden The Residence at The Sea')]").click()soup = BeautifulSoup(driver.page_source,"html.parser")containers = soup.find_all("div", {"class": "review_list_container"})reviews = containers[0].find_all("ul")
查看完整描述

1 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

您必须将焦点切换到打开的新选项卡。你可以使用


driver.switch_to.window(driver.window_handles[1])

这是最终的代码:


from selenium import webdriver

from bs4 import BeautifulSoup

import time


driver = webdriver.Chrome()

driver.get("https://booking.com")


time.sleep(2)

driver.find_element_by_css_selector("input[class*='sb-searchbox__input']").send_keys("Eden The Residence at The Sea")

driver.find_element_by_css_selector("button[type='submit']").click()

driver.find_element_by_xpath("//span[contains(text(),'Eden The Residence at The Sea')]").click()

time.sleep(3)

driver.switch_to.window(driver.window_handles[1])

soup = BeautifulSoup(driver.page_source,"html.parser")


containers = soup.find_all("span", {"class": "c-review__body"})


for span in containers:

    print(span.text)

输出:


“The location is great just few minutes walk to the beach”

“The entire experience was flawless. This is the most beautiful villa I've ever stayed in, let alone, seen. The staff were outstanding and so friendly and professional. The private chefs that cooked breakfast in our Villa was amazing, and SO well pri…

“The staff were great and it was very easy to order meals and have them prepared at a very reasonable price.”

“The villa is spacious and airy with a large private pool.

Bedrooms are large each with their own bathroom facilties.

The staff go above and beyond to make your stay as comfortable as possible.”

“Excellent , friendly helpful staff

Beautiful patio, garden and pool

Very spacious villa 

Fast laundry service

Decorate the villa and bath with flowers for my wife’s birthday ”

“We loved almost everything about Eden Residence from the location, the quality of the villa, the staff, the cost and the room service (cooks came and prepared meals at the cost to buy groceries plus 15%).

The staff are super friendly and we felt ext…

“Great accomodation. Lots of space. Great pool. Good service”

“Everything! The spacious living room, big toilet, beautiful surroundings. Not to forget, fantastic service by all the staff! Sampai jumpa lagi semuanyaaa 🙏🏻”

“Staff were exceptional. They went above and beyond to meet our needs at all hours of the day/night. Great, convenient location. Large spacious rooms all each with their own bathroom/ensuite. Pool was amazing. Staff cooked traditional suckling pig fo…

“Luxury Villa

Excellent friendly staff

Private pool

Ocean View sunsets from rooftop 

Walking distance to beach”


查看完整回答
反对 回复 2024-01-04
  • 1 回答
  • 0 关注
  • 50 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信