#这篇主要是讲抓取酒店页面list的经历,也有很多坑,反爬,价格数据放在其他位置
多分析才能事半功倍

1.通过分析酒店相关信息list也是ajax加载,存放在json数据中,价格也在同一个json中但是放在另外的位置通过酒店id对应


2.下来就是主要提取自己需要的信息,然后存储就好,这边存放csv和mysql数据库,代码中有两个注释知识点着重留意下,然后就是保存到mysql是通过pymysql建立,navicat创建表,记得表名和列名需要与插入数据一一对应

import requests
import json
import re
import csv
import demjson
import pymysql#连接写入提交
conn = pymysql.Connect(host='localhost', port=3306, user='root', passwd='***', db='jiudian')
curor = conn.cursor()
lists=[]
dicts={}
ss=0
for i in range(1,20):url="http://hotels.ctrip.com/Domestic/Tool/AjaxHotelList.aspx"headers={"Connection": "keep-alive","origin":"http://hotels.ctrip.com","Host": "hotels.ctrip.com","referer": "http://hotels.ctrip.com/hotel/beijing1","user-agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.92 Safari/537.36",}data={"StartTime":"2018-10-09","DepTime": "2018-10-10","RoomGuestCount": "1,1,0","cityId":1,"cityPY":" beijing","cityCode":"010","cityLat": 39.9105329229,"cityLng":116.413784021,"page":i,}html=requests.post(url,headers=headers,data=data)#ValueError: Invalid \escape: line 1 column 35442 (char 35441)问题在于编码中是\xa0之类的,当遇到有些 不用转义的\http之类的,则会出现以上错误。解决方案如下:regex = re.compile(r'\\(?![/u"])')fixed = regex.sub(r"\\\\", html.text)aa=json.loads(fixed)for n in range(0,25):dianming = aa["hotelPositionJSON"][n]["name"]#python eval函数,将列表样式的字符串转化为列表jiage=eval(aa["HotelMaiDianData"]["value"]["htllist"])[n]["amount"]xinji=aa["hotelPositionJSON"][n]["star"][-2:]dangci=aa["hotelPositionJSON"][n]["stardesc"]pingfen=aa["hotelPositionJSON"][n]["score"]lianjie="http://hotels.ctrip.com"+aa["hotelPositionJSON"][n]["url"]ss += 1lists.append([ss, dianming,xinji,dangci,pingfen,jiage + "元",lianjie])# lists.append([s,"酒店名:"+name,"星级:"+xinji,"档次:"+dangci,"评分:"+pingfen,"价格:"+jiage+"元"])dicts[ss]=["酒店名:"+dianming,"星级:"+xinji,"档次:"+dangci,"评分:"+pingfen,"价格:"+jiage+"元","链接:"+lianjie]print("正在检索中"+str(ss))hot = "insert into jdlist(jd_num,jd_name,jd_star,jd_good,jd_fen,jd_jiage,jd_link) values('%s','%s','%s','%s','%s','%s','%s')" % (ss,dianming,xinji,dangci,pingfen,jiage,lianjie)curor.execute(hot)conn.commit()# self.conn.close()# mm=re.findall('.*?"amount":"(.*?)"}',jiage)
# print(lists)
with open("bjjiudian.csv", "w", encoding="utf-8",newline="") as f:k = csv.writer(f, dialect="excel")k.writerow(["数量", "酒店名", "星级", "档次", "评分", "价格","链接"])for list in lists:k.writerow(list)
print(lists)
print(dicts)


爬虫-携程酒店信息抓取降妖除魔(下)相关推荐

  1. js逆向之携程酒店房价抓取

    团队持续招人,app逆向方向,私聊.2019-05-11 修复携程eleven参数改版问题 1 在调用require的时候判断是不是参数是不是path,如果是抛出异常 2 重新window的构造方法的 ...

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

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

  3. 携程酒店数据爬取2020.5

    携程酒店数据爬取2020.5 1. 开题 目前网上有好多爬取携程网站的教程,大多数通过xpath,beautifulsoup,正则来解析网页的源代码.然后我这个菜b贪方便,直接copy源码的xpath ...

  4. 对携程酒店用户评价爬取

                                                                                                        ...

  5. 主题酒店api,携程酒店信息查询

    主题酒店api,携程酒店信息查询,在线预订和支付下单.(!注post内容是json串如{"Key":"appkey"}而不是Key=appkey,建议使用浏览器 ...

  6. python-爬虫-到喜啦酒店信息抓取

    到喜啦 酒店信息抓取 1.招商需要成都的酒店信息,那么时间比较短 上代码 import requests import pymysql from lxml import etree import re ...

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

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

  8. 携程旅行采集抓取爬虫python爬取

    ​ 店铺详情页基本信息: (以下将以酒店类店铺为例) ● 店铺名称 ● 星级/钻级 ● 详细地址 ● 装修/开业/简介页面 ○ 开业/最近装修年份 ○ 客房数 ○ 电|话 ○ 简介文案 店铺点评区信息 ...

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

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

最新文章

  1. 请收下这份NLP热门词汇解读
  2. 浅析js中的arguments
  3. MIT发布首个贝叶斯「数据清洗」机器人!8小时洗200万条数据
  4. C#拾遗系列(9):继承、接口、扩展方法、分部类、类操作、Ref and Out、可空类型...
  5. android 让item满屏,Android的全屏活动?
  6. 使用FlexDeploy对融合中间件应用程序进行自动化软件测试
  7. GridView - Batch Editing - How to cancel editing or disable the editor conditionally
  8. 构建高性能WEB站点笔记二
  9. 正则表达式 匹配标签里面的值 eg:image input
  10. mysql 数据类型 image_MySQL 数据类型
  11. 发表优质书评,获得管家推荐【51CTO家园读书帮助】
  12. C/C++ debug(四)
  13. Linux设备驱动之字符设备(二)
  14. html顺序播放mp3,完美:按顺序播放mp3的方法是什么?如何更改U盘中歌曲的播放顺序...
  15. 利用全加器实现7段数码管_[走近FPGA]之数码管动态显示
  16. SURF(Speeded Up Robust Features)算法原理
  17. 【Excel-2010】四种方式筛选重复数据
  18. FISCO-BCOS 及 WeBase 问题记录
  19. python环境IDLE下载
  20. Python工具库安装

热门文章

  1. 以太网控制1553b总线
  2. matlab 的 regress、 nlinfit 、stepwise函数多元回归分析
  3. EAS 系统子系统树
  4. 使用Python进行Grad-CAM ++:深度卷积网络的改进视觉解释
  5. NLP文本预处理:步骤、示例 | 附github源码
  6. 第三天的实现,主要是封装优化,不会文件啊,把优化后的主文件发上来(用了xlb)
  7. 一度智信:拼多多新店如何打造爆品
  8. 定论——软件开发的方法论探讨
  9. [东邪西毒][程序员版][原版][剧情]
  10. 计算机信息管理招聘笔试题,计算机信息管理专业卫生事业单位招聘考试笔试模拟题(七)...