Python爬取携程酒店信息

2023-11-13

代码

from selenium import webdriver
from time import sleep
import xlwt  # 进行excel操作
#谷歌驱动 告诉电脑在哪打开浏览器
driver=webdriver.Chrome(executable_path="D:/chromedriver.exe")
#打开网页
driver.get("https://hotels.ctrip.com/?allianceid=4897&sid=798178&bd_vid=8152353566163309773")
#通过xpath点击搜索
driver.find_element_by_xpath("//*[@id='btnSearch']").click()
driver.implicitly_wait(20)#隐式休息20s 登录携程

names=[]
prices=[]
addresses=[]
percents=[]
peoples=[]
for i in range(1,11):
    for j in range(1,26):
        name=driver.find_element_by_xpath("//div[@id='hotel_list']/div["+str(j)+"]/ul[@class='hotel_item']/li[2]/h2/a")
        price=driver.find_element_by_xpath("//div[@id='hotel_list']/div["+str(j)+"]/ul/li[3]//a/span")
        address=driver.find_element_by_xpath("//div[@id='hotel_list']/div["+str(j)+"]/ul[@class='hotel_item']/li[2]/p")
        percent=driver.find_element_by_xpath("//div[@id='hotel_list']/div["+str(j)+"]/ul[@class='hotel_item']/li[4]/div//span[@class='total_judgement_score']/span")
        people=driver.find_element_by_xpath("//div[@id='hotel_list']/div["+str(j)+"]/ul[@class='hotel_item']/li[4]/div//span[@class='hotel_judgement']/span")

        names.append(name.get_attribute("textContent").replace('\n', '').replace('\t', ''))
        prices.append(price.get_attribute("textContent"))
        addresses.append(address.get_attribute("textContent").replace('\n', '').replace('\t', '').replace('【', '').replace("】", ''))
        percents.append(percent.get_attribute("textContent"))
        peoples.append(people.get_attribute("textContent"))
    driver.find_element_by_xpath("//*[@id='downHerf']").click()
    sleep(5)
    print("第"+str(i)+"页")
print("爬取完毕!")

#存数据
book = xlwt.Workbook(encoding="utf-8", style_compression=0)  # 创建workbook对象
sheet = book.add_sheet('携程', cell_overwrite_ok=True)  # 创建工作表
col = ("酒店名称","酒店价格","酒店地址","用户推荐","推荐人数")
for i in range(0, 5):
    sheet.write(0, i, col[i])  # 列名
for i in range(0,250):
    sheet.write(i+1,0,names[i])
for i in range(0,250):
    sheet.write(i+1,1,prices[i])
for i in range(0,250):
    sheet.write(i+1,2,addresses[i])
for i in range(0,250):
    sheet.write(i+1,3,percents[i])
for i in range(0,250):
    sheet.write(i+1,4,peoples[i])
book.save("携程.xls")  # 保存
print("关闭浏览器,保存数据")

结果
在这里插入图片描述

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python爬取携程酒店信息 的相关文章

随机推荐

  • 用C写小游戏(扫雷)

    扫雷 前言 实现的基本要素 菜单 雷区设置与打印 1 雷区 2 布置雷 3 打印雷区 雷范围标识与排雷 1 雷范围标识 2 排雷 代码展示 前言 说到扫雷大家都不陌生吧 特别是windowsXP开始的菜单中找到的小游戏中最吸引我们的便是扫雷
  • coroutines 学习随笔「一」

    文章目录 前言 疑问1 为啥用协程还要添加一个额外的依赖库 太奇怪了 我的runBlocking launch withContext 等等都哪去了 跟踪到标准库去看看 从现在开始进入到标准库了 下个小结论 this is BaseCont
  • 猿创征文|深聊MySQL,从入门到入坟之:应该是全网最详细的MySQL知识点汇总,必须收藏。

    MySQL详细知识点汇总 1 引言 2 MySQL知识点汇总 2 1 链接与断开 2 2 启动与创建服务 2 3 数据库操作 2 4 表操作 2 5 数据操作 2 6 字符集编码 2 7 数据类型 2 7 1 数值类型 2 7 2 字符串类
  • multipart/form-data的使用注意

    问题描述 事情是这样的 我在使用ajax FormData对象提交数据的时候 使用request setRequestHeader Content Type application x www form urlencoded 但服务端接受的
  • 用ACL实现防火墙功能

    目录 一 实验目的 二 实验环境 三 实验内容 实验步骤 测试数据等 1 打开Cisco Packet Tracer 6 0 按以下拓扑图接好线路 PC与Server的IP地址 掩码 网关配置 路由器连接配置 2 配置好设备的IP地址和静态
  • Java线程的5种状态及状态之间转换

    Java中的线程的生命周期大体可分为5种状态 1 新建 NEW 新创建了一个线程对象 2 可运行 RUNNABLE 线程对象创建后 其他线程 比如main线程 调用了该对象的start 方法 该状态的线程位于可运行线程池中 等待被线程调度选
  • 笔记/OSI七层模型

    层级 名称 功能 协议 设备 协议数据单元 7 应用层 为应用程序提供网络服务 对应用程序提供接口 HTTP 80 TCP 超文本传输 Telnet 23 TCP 远程登陆 FTP 20 21 TCP 文件传输 SMTP 25 TCP 简单
  • AD器件距离过近报错 AD修改丝印的距离间距

    今天画板子遇见了一个间距报错 图片如下 我当时想着 修改丝印的间距就可以了 查找了一些资料之后发现是这样修改 并且我将其修改到了0 但是结果还是如上图一样 报错 最后发现除此之外 我们还需要修改元件之间的电气距离 修改完成之后就OK
  • Thinkpad笔记本快捷键大全

    Thinkpad笔记本快捷键大全 FN F2 锁定屏幕 FN F3 关闭屏幕 FN F4 待机 FN F5 无线和蓝牙开关 FN F7 不同显示设备输出切换 FN F9 安全删除硬件 FN F12 休眠 FN 空格 放大 其实就是降低分辨率
  • JackSonUtil JSONArray转换工具

    import com fasterxml jackson core type TypeReference import com fasterxml jackson databind ObjectMapper public final cla
  • Ubuntu安装nginx到配置ssl证书

    1 命令安装nginx sudo apt get install nginx 配置文件默认在 etc nginx文件夹下面 可以编辑nginx conf 或者 sites enabled文件夹下面的默认配置文件 default 2 常用命令
  • linux定时删除文件或文件夹

    本文转载自 https blog csdn net jiangnan8710 article details 51849748 linux新人 个人记录以后备用 一 常用的命令 1 查询命令 find 在删除日志前 首先要做的是查找日志所在
  • dos命令之md详解及实例应用

    dos命令之md详解及实例应用 用来创建文件夹dos的命令只有md 其英文解释为 makedirectory在windows2000 xp vista win7使用方法及实例如下 在命令行窗口输入md 可得到一份帮助信息如下图 例1 如果在
  • python爬取整个网站的广告敏感词_Python实现敏感词过滤的4种方法

    在我们生活中的一些场合经常会有一些不该出现的敏感词 我们通常会使用 去屏蔽它 例如 尼玛 gt 一些骂人的敏感词和一些政治敏感词都不应该出现在一些公共场合中 这个时候我们就需要一定的手段去屏蔽这些敏感词 下面我来介绍一些简单版本的敏感词屏蔽
  • 全国首富排行居然有他?用Python采集全国富豪榜五百名。

    背景 今天刷到一则文章 就是国内某富豪花重金迎娶泰国某 皇后 可谓是有点颠覆了我的三观啊 有钱人都玩的这么花的吗 这里内容就不一一讲了 毕竟看咱文章的都是想来学技术的 那就废话不多说 开始干活 正文 相关模块 今天不用其他的什么模块 pyt
  • linux系统使用rsync做主备服务器文件同步

    根据本文档设置 可以实现备机自动同步主机中的文件 注意 此方式缺陷为 如果主机文件修改 但是文件大小无变化或者文件变小时 无法自动同步到备机中 只有主机中文件修改后变大或者名称修改才能自动同步 一 LINUX服务器间免密登录设置 先执行 u
  • Scaling Instruction-Finetuned Language Models

    Paper name Scaling Instruction Finetuned Language Models Paper Reading Note Paper URL https arxiv org pdf 2210 11416 pdf
  • 【NLP】pkuseg:一个多领域中文分词工具包

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • 软考-嵌入式系统设计师-笔记:标准化知识

    文章目录 国际标准 国家标准 行业标准 企业标准基本知识 嵌入式系统相关标准 国际标准 国家标准 行业标准 企业标准基本知识 国际标准 有效期5年 ISO 标准号 杠 分标准号 冒号 发布年号 方括号中的内容可有可无 国家标准 GB 中国
  • Python爬取携程酒店信息

    代码 from selenium import webdriver from time import sleep import xlwt 进行excel操作 谷歌驱动 告诉电脑在哪打开浏览器 driver webdriver Chrome