上节博客我们利用requests请求库,正则表达式来提取信息(链接https://mp.csdn.net/postedit/81865681),提到过使用selenium也可以抓取酒店信息,在这里利用selenium模块优点是不需要数据处理过滤,只需要处理异常,(实际上也是一样的效果)但是对于使用selenium爬取效率太慢。

具体的分析如上节分析的类似,只是定位元素是利用find_element(s)_by_id,find_element(s)_by_class_name等等定位方法。下面直接给出代码。如有疑问,可留言一起探讨。

import time
from selenium  import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.common.exceptions import NoSuchElementException  ###导入异常属性
from pymongo import MongoClient
driver=webdriver.Chrome()
url='http://hotels.ctrip.com/hotel/nanjing12#ctm_ref=ctr_hp_sb_lst'
driver.get(url)
time.sleep(2)
button=driver.find_element_by_css_selector('#appd_wrap_close')
button.click()
page=driver.find_element_by_css_selector('#page_info > div.c_page_list.layoutfix > a:nth-child(9)')  ###定位总页数
for m in range(int(page.text)) :if m :next_button=driver.find_element_by_css_selector('.c_down')       next_button.send_keys(Keys.ENTER)driver.execute_script('window.scrollBy(0,5800)')time.sleep(2)    infor=driver.find_element_by_css_selector('#hotel_list').find_elements_by_class_name('hotel_new_list')# print(len(infor))for data in infor :try:hotel_level=data.find_element_by_css_selector('ul > li.hotel_item_judge.no_comment > div.hotelitem_judge_box > a > span.hotel_level').textexcept NoSuchElementException :hotel_level=''try:recommend=data.find_element_by_css_selector(' ul > li.hotel_item_judge.no_comment > div.hotelitem_judge_box > a > span.recommend').textexcept NoSuchElementException :recommend=' 'hotel_information= {'title':data.find_element_by_css_selector(' ul > li.pic_medal > div > a').get_attribute('title'),'adress':data.find_element_by_css_selector(' ul > li.hotel_item_name > p.hotel_item_htladdress').text.rstrip('地图'and'地图街景') ,'hotle_score':hotel_level+data.find_element_by_css_selector('ul > li.hotel_item_judge.no_comment > div.hotelitem_judge_box > a > span.hotel_value').text,'lowestprice':data.find_element_by_css_selector('ul > li.hotel_price_icon > div > div > div > a > span').text,'recommend':recommend,}print(hotel_information)client=MongoClient()db=client['ctrip']collection=db['hotels information']collection.insert_one(hotel_information)

运行得到部分结果截图如下:

原创不易,如若转载,请注明出处与作者,谢谢!

利用selenium爬取携程酒店信息相关推荐

  1. python爬取携程酒店信息_不写代码玩转爬虫实例(3) - 抓取携程酒店信息

    背景需求 有不少朋友问永恒君携程网站的酒店信息怎么抓取,今天这篇文章来分享一下使用web scraper来快速实现抓取携程酒店信息. 例如,在携程官网搜索北京 密云水库的酒店信息, 可以搜索到非常多的 ...

  2. 最新爬取携程酒店信息上:思路讲解

    本以为携程的信息很好爬,但是在我目前能力一般的时候,经过尝试,发现了携程真的有太多坑了,虽然说代码和大佬比起来不是最优的,但是可以完成爬取任务. 在这里记录一下本次学习过程,为后人乘凉. 要爬取所有的 ...

  3. python携程酒店评论_Python基于selenium爬取携程酒店评论信息

    爬取站点 任意一个携程酒店的详细链接,这里给出了四个,准备开四个线程爬取: https://hotels.ctrip.com/hotel/6278770.html#ctm_ref=hod_hp_hot ...

  4. 最新爬取携程酒店信息代码

    代码方面,我们使用scrapy框架爬取酒店信息,经过测试发现,使用这种方法不会被封ip和cookie. 思路: 1.得到城市的编号 2.通过编号,进入酒店列表,并且得到酒店总数 3.计算酒店页数,构造 ...

  5. Python爬取携程酒店信息

    文章目录 前言 一.请求头,请求参数 二.获取JSON数据 总结 前言 还是毕设- 要用到哈尔滨黑河酒店的数据 但每个城市都一样 还是从携程下手- 一.请求头,请求参数 在携程主页搜索我们要爬取的城市 ...

  6. 利用selenium爬取携程旅游网的景区评论

    第一步:打开携程网,获取该景点的网址.以我的为例,我爬取的是湖北省 恩施州的恩施大峡谷景区的评论.网址为:https://you.ctrip.com/sight/enshi487/51386.html ...

  7. 快速简单爬取携程酒店信息简介

    先查看网站发送信息格式,发现可以通过ajax来拿取信息,还没有ip访问限制.然后顺便爬了杭州5000家酒店信息 import scrapy import time import json from x ...

  8. Java数据爬取——爬取携程酒店数据(二)

    在上篇文章Java数据爬取--爬取携程酒店数据(一)爬取所有地区后,继续根据地区数据爬取酒店数据 1.首先思考怎样根据地域获取地域酒店信息,那么我们看一下携程上是怎样获得的. 还是打开http://h ...

  9. Java数据爬取——爬取携程酒店数据(一)

    最近工作要收集点酒店数据,就到携程上看了看,记录爬取过程去下 1.根据城市名称来分类酒店数据,所以先找了所有城市的名称 在这个网页上有http://hotels.ctrip.com/domestic- ...

最新文章

  1. Quartz-SimpleTrigger解读
  2. mysql起止时间怎么写_【Mysql 学习】日期函数函数
  3. 【HDU - 5475】An easy problem(线段树,思维)
  4. java并发编程 博客_JAVA并发编程常识
  5. keil窗口显示不全_使用Keil语言的嵌入式C编程教程(下)
  6. 只做两个龅牙门牙_孔子画像中的门牙格外突出,画师为何不给圣人开美颜?...
  7. 目标检测之Faster RCNN理论概述
  8. JSP九大内置对象和四大作用域
  9. kali-beef工具(xss-stored)
  10. 计算机应用能力考试ppt2003,全国专业技术人员计算机应用能力考试_PPT_2003_题库版.docx...
  11. 渗透测试工程师(NISP-PT)与网络安全运维工程师(NSP-SO)
  12. MAC OS下免费下载YouTube
  13. 关于Android app正式版本和测试版本的切换
  14. CVE-2020-0787复现
  15. Linux上安装git
  16. 基础篇章:React Native之 Image 的讲解
  17. WINSYS DAY02: 用户和组账号 、 NTFS权限控制
  18. oracle 删除表存过,oracle删除数据库中已存在表的实例代码
  19. Leetcode刷题java之121买股票的最佳时机
  20. 设计模式 - 适应设计模式 - Iterator模式(一)

热门文章

  1. 【真题解析】系统集成项目管理工程师 2021 年下半年真题卷
  2. 前端JavaScript——js声明定义数组及常用操作
  3. 搞懂回归和分类模型的评价指标的计算:混淆矩阵,ROC,AUC,KS,SSE,R-square,Adjusted R-Square
  4. 使用递归方法实现链表反转
  5. Revit添加自己的快捷键和一键剪切
  6. RTKLIB学习资料(博客)
  7. VS 2017 Git failed with a fatal error的解决办法
  8. dma_alloc_coherent DMA内存申请学习笔记
  9. 极速高清——给你带来全新的高清视野
  10. 文件上传过大被限制问题-springboot