用selenium来,选取某一地点的酒店查询界面作为采集对象,设计两个采集程序分别采集该搜索结果查询页的前 25 条酒店(第一页的基本数据(酒店名、评价、价格、标签、地点等)
时间: 2024-04-01 09:34:12 浏览: 57
利用selenium爬虫抓取数据的基础教程
好的,以下是使用Python和Selenium自动化工具来实现您的需求的示例代码:
```python
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# 指定Chrome浏览器驱动的路径
driver_path = "/path/to/chromedriver"
# 创建Chrome浏览器对象
driver = webdriver.Chrome(executable_path=driver_path)
# 访问目标URL
url = "https://www.booking.com/"
driver.get(url)
# 在搜索框中输入目标地点
search_box = driver.find_element_by_id("ss")
search_box.send_keys("目标地点")
# 点击搜索按钮
search_btn = driver.find_element_by_css_selector("button.sb-searchbox__button")
search_btn.click()
# 等待搜索结果加载完成
wait = WebDriverWait(driver, 10)
element = wait.until(EC.presence_of_element_located((By.ID, "hotellist_inner")))
# 获取前25个酒店的基本数据
hotel_list = driver.find_elements_by_css_selector("div.sr_item")
for hotel in hotel_list[:25]:
# 获取酒店名
name = hotel.find_element_by_css_selector("span.sr-hotel__name").text
# 获取评价分数
rating = hotel.find_element_by_css_selector("div.bui-review-score__badge").text
# 获取价格
price = hotel.find_element_by_css_selector("div.bui-price-display__value").text
# 获取标签
tags = hotel.find_elements_by_css_selector("div.bui-badge__text")
tags_text = [tag.text for tag in tags]
# 获取地点
location = hotel.find_element_by_css_selector("span.sr_card_address_line").text
# 打印酒店的基本数据
print("酒店名:", name)
print("评价分数:", rating)
print("价格:", price)
print("标签:", tags_text)
print("地点:", location)
print("=" * 50)
# 关闭浏览器
driver.quit()
```
在这个示例代码中,我们使用Selenium打开了booking.com的网站,输入目标地点并点击搜索按钮,等待搜索结果加载完成后,获取了前25个酒店的基本数据。您可以根据您的具体需求对代码进行修改和优化。
阅读全文