python selenium 京东商城酒店信息爬虫

from selenium import  webdriver
import time
driver=webdriver.Edge(r"D:\dmh\tools\driver\msedgedriver.exe")
driver.maximize_window()
driver.implicitly_wait(10)
#打开网页
driver.get("https://www.jd.com/")
driver.find_element_by_xpath('//a[@href="//hotel.jd.com/"]').click()
time.sleep(3)
#因进入酒店模块,新打开标签页,则需先切换页面
driver.switch_to_window(driver.window_handles[-1])#返回列表
#页面被遮挡时,是不能进行元素定位的
#选择城市,需先定位城市,清除原默认城市,再输入
city=driver.find_element_by_id('city')
#清除原默认城市
city.clear()
#输入内容
city.send_keys("西安")
#因有下拉枚举值,比较多,需要强制等待,再选择
time.sleep(3)
#控制台设置时间冻结 setTimeout(function(){debugger},5000)
#选择西安 陕西
driver.find_element_by_xpath('//li[@data-val="西安,西安,陕西"]')
time.sleep(3)
#选择入住时间,先点击,才能有日期的选择窗口
driver.find_element_by_id('dateStart').click()
time.sleep(3)
driver.find_element_by_xpath('//div[@class="ui-jm-calendar ui-calendar-3"]//table[@data-index="1"]/tbody/tr[2]/td[5]').click()
time.sleep(3)
#选择离店日期
driver.find_element_by_xpath('//div[@class="ui-jm-calendar ui-calendar-4"]//table[@data-index="1"]/tbody/tr[2]/td[6]').click()
#选择商圈
hotel=driver.find_element_by_id("hotelKeys")
#输入
hotel.send_keys("钟楼")
#下拉枚举选择
driver.find_element_by_xpath('//li[@data-val="钟楼"]').click()
time.sleep(3)
#点击搜索酒店
driver.find_element_by_id('searchBtn').click()

爬虫酒店思路:

1、导入相关类,选定相应浏览器驱动

2、窗口最大化

3、窗口隐式等待

4、打开京东商城地址

5、进入左边菜单选项,选择【酒店】模块,注意点击酒店,跳转新标签,需进行页面切换:

driver.switch_to_window(driver.window_handles[-1])

6、针对城市、日期、商圈依次定位,注意输入文本信息时,含多个枚举值时,页面需在控制台先冻结一下,再进行下一步抓取元素

setTimeout(function(){debugger},5000)

7、选择日期定位稍微复杂点,我踩了蛮多的坑,宝子们有更加优化的方法不

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值