运用Selenium库和XPATH、CSS选择数据的方法爬取携程网信息
时间: 2024-03-25 16:40:37 浏览: 69
网络爬虫–Selenium的使用
以下是使用Selenium库和XPATH、CSS选择器爬取携程网信息的示例:
```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
driver = webdriver.Chrome()
driver.get("https://www.ctrip.com/")
# 使用CSS选择器定位输入框并输入关键字
input_box = driver.find_element_by_css_selector("#searchHotelLevelSelect")
input_box.send_keys("上海")
# 使用CSS选择器定位搜索按钮并点击
search_button = driver.find_element_by_css_selector("#searchHotelLevelSelectBtn")
search_button.click()
# 等待搜索结果加载完成
wait = WebDriverWait(driver, 10)
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, ".list_mod2")))
# 使用XPATH选择器定位酒店列表并获取信息
hotel_list = driver.find_elements_by_xpath("//ul[@class='hotel_item']/li")
for hotel in hotel_list:
name = hotel.find_element_by_xpath(".//h2/a").text
address = hotel.find_element_by_xpath(".//p[@class='address']/span[1]")text
print(name, address)
driver.quit()
```
在上面的示例中,我们使用Selenium库和XPATH、CSS选择器来爬取携程网上的酒店信息。首先,我们使用CSS选择器定位搜索框并输入关键字“上海”,然后使用CSS选择器定位搜索按钮并点击。接下来,我们使用WebDriverWait等待搜索结果加载完成,然后使用XPATH选择器定位酒店列表,并使用find_element_by_xpath方法和相对路径来获取酒店名称和地址信息。最后,我们遍历酒店列表并打印出酒店名称和地址信息。
需要注意的是,爬取网站的时候要遵守相关法律法规和网站的爬虫规则,以免引起不必要的法律问题。同时,还需要注意反爬虫机制,如设置User-Agent、使用代理等。
阅读全文