Python3 爬取携程网[2]: 爬取北京五星级酒店详细信息
目录
1. 需求分析
2. 实验环境
3. 具体实现
3.1 分析页面
3.2 请求
3.3 响应
3.3.1 BeautifulSoup提取标签信息
3.3.2 正则表达式提取字符串信息
3.3.3 整合为Pandas.DataFrame对象
4. 完整代码
4.1 完整代码实现
4.2 运行结果展示
5. 总结
1. 需求分析
在爬取携程网[1]这篇文章中,本人讲述了爬取北京五星级酒店列表的方法。在本文中,将根据上文爬取的酒店列表,爬取各酒店的具体房型、价格、入住人数、床型大小等信息。
2. 实验环境
- 语言:Python 3.7
- 操作系统:MacOS
- 编程IDE:Pycharm
- 浏览器:Chrome
3. 具体实现
3.1 分析页面
1. 打开携程网
填写目的地北京、入住日期、退房日期,勾选五星级酒店,并按好评优先顺序排列,就可以呈现北京五星级酒店列表。分析页面工作以排名第一的“北京朝林松源酒店”为例,进行讲解。
图1 北京五星级酒店列表
2. 分析酒店详情
我们想要爬取的是“房型列表”这一信息,如图2所示。
图2 北京朝林松源酒店房型列表
爬取房型名称、床型、最低价、入住人数、房间详情等具体信息,然后用Pandas.DataFrame进行展示。
通过文章[1],我们知道,想要获取房型列表,需要寻找其网络接口。通过Chrome浏览器的“检查”中的“网络”,找到其网络接口,“html”中就包含房型列表等我们需要的信息。
图3 寻找房型列表接口
3.2 请求
通过找到的房型列表接口,我们只要请求其接口,解析返回的响应就可以获取需要的信息。从请求头可看出,请求的URL如图4所示:
图4 请求URL
这里简单补充一下URL的知识。URL中文名为统一资源定位符,它代表着互联网上标准资源的地址,具有唯一性。URL结构如图5所示:
图5 URL结构示意图
图5展示了2种URL。从上往下看:
- 第1个是由域名构成的URL。Http为协议,www.google.com.sg为主机名,google.com.sg为主域名,com.sg为顶级根域名。现在全球也只有13台顶级Ipv4根服务器。webhp?hl=zh-CN为路径。
- 第2个是由IP地址构成的URL。Http为协议,IP地址为218.253.0.77,路径为webhp?hl=zh-CN。
通过结合URL的基础知识,分析图4中的请求URL,它主要由2部分构成:
- 基础URL:http://hotels.ctrip.com/Domestic/tool/AjaxHote1RoomListForDetai1.aspx?
- 详细参数:
psid=&MasterHotelID=6147365&hotel=6147365&EDM=F&roomId=&IncludeRoom=&city=1&showspothotel=T&supplier=&IsDecoupleSpotHotelAndGroup=F&contrast=0&brand=0&startDate=2019-02-20&depDate=2019-02-21&IsFlash=F&RequestTravelMoney=F&hsids=&IsJustConfirm=&contyped=0&priceInfo=-1&equip=&filter=&productcode=&couponList=&abForHuaZhu=&defaultLoad=T&esfiltertag=&estagid=&Currency=RMB&Exchange=1&TmFromList=F&RoomGuestCount=1,2,0&eleven=74e43c2ed5552ed943cecfc190d7549951e0bbc26ea40dd35df2ef09f8ac8594&callback=CASEKPmcyrLOcqpPgfq&_=1550647072827
分析详细参数,里面包含了酒店的ID、入住日期、退房日期等等一系列参数,当详细参数仅为:
hotel=6147365
请求完整URL:
url: http://hotels.ctrip.com/Domestic/tool/AjaxHote1RoomListForDetai1.aspx?hotel=6147365
响应状态码为200,响应内容为北京朝林松源酒店的详细信息,所以,通过输入不同的酒店ID,即可获得不同的北京五星级酒店详细信息。用代码表示:
# Basic URL
basic_url = "http://hotels.ctrip.com/Domestic/tool/AjaxHote1RoomListForDetai1.aspx?hotel="
# Complete URL
url = basic_url + str(hotel_id)
3.3 响应
3.3.1 BeautifulSoup提取标签信息
使用Python中的requests包请求URL时,返回的是如图6所示的html代码。
图6 请求返回的html代码
通过阅读返回的html代码,我们发现,我们所需要的房型、最低价等一系列信息,就存放在class名为“child_name J_Col_RoomName”中的标签中。此时,借助BeautifulSoup包,可以快速实现对该类的信息提取。使用BeautifulSoup包进行信息提取的代码为:
# Response
html = r.json()['html']# Using BeautifulSoup
soup = BeautifulSoup(html, "lxml")
# Find all related tags.
rooms = soup.findAll('td', attrs={"class":"child_name J_Col_RoomName"})
print(rooms)
信息提取结果:
[<td class="child_name J_Col_RoomName" data-addbed="1" data-bed="1" data-bf="3" data-ctrip="1" data-firstmap="47630895PP,47631641PP,47631642PP," data-hotelinvoice="1" data-networklan="1" data-networkwifi="1" data-pay="3" data-personmatch="false" data-policy="3" data-price="1609" data-pricedisplay="1609" data-reserve="1" data-roomid="47630895PP">
<span class="room_type_name">标准价</span>
<span data-params="{'options':{'type':'jmp_table','template':'#jmpTempGift','content':{'gift':'T','giftinfo':'每间夜可获得竹林自助餐厅午餐或晚餐1次,每次最多房间内2名已办理入住客人可用。仅限入住期间使用,具体餐次由客人自选,暂不提供周日和国家法定节假日最后一日晚餐。','ShadowGift':'F','package':'F'},'classNames':{'boxType':'jmp_table'},'css':{'maxWidth':500},'group':'gift'}}" data-role="jmp"><span class="label_onsale_orange" style="margin-right: 0px">礼</span></span><input class="spfrom" type="hidden" value="-1"/>
</td>, <td class="child_name J_Col_RoomName" data-addbed="1" data-bed="1" data-bf="2" data-ctrip="1" data-hotelinvoice="1" data-networklan="1" data-networkwifi="1" data-pay="3" data-personmatch="false" data-policy="3" data-price="1659" data-pricedisplay="1659" data-reserve="1" data-roomid="47631641PP">
<span class="room_type_name">标准价</span>
<span data-params="{'options':{'type':'jmp_table','template':'#jmpTempGift','content':{'gift':'T','giftinfo':'每间夜可获得竹林自助餐厅午餐或晚餐1次,每次最多房间内2名已办理入住客人可用。仅限入住期间使用,具体餐次由客人自选,暂不提供周日和国家法定节假日最后一日晚餐。','ShadowGift':'F','package':'F'},'classNames':{'boxType':'jmp_table'},'css':{'maxWidth':500},'group':'gift'}}" data-role="jmp"><span class="label_onsale_orange" style="margin-right: 0px">礼</span></span><input class="spfrom" type="hidden" value="-1"/>
</td>, <td class="child_name J_Col_RoomName" data-addbed="1" data-baseroominfo='{"RoomUrl":"//dimg12.c-ctrip.com/images/200b090000003y2zz574C_R_300_225.jpg","RoomID":27541229,"RoomName":"豪华大床房","BaseRoomInfo":"40平方米<span class=\"line\">|</span>3-8层<span class=\"line\">|</span>不可吸烟<span class=\"line\">|</span>1张2米双人床<span class=\"line\">|</span>2人","ConvenientFacilities":null,"MediaTechnology":null,"FoodBeverages":null,"Bathroom":null,"OutdoorsViews":null,"ServicesOthers":null,"PriceNum":3,"LowPrice":1609.0,"RoomTotalNum":3}' data-baseroomname="豪华大床房" data-bed="1" data-bf="1" data-ctrip="1" data-hotelinvoice="1" data-networklan="1" data-networkwifi="1" data-pay="3" data-personmatch="false" data-policy="3" data-price="1828" data-pricedisplay="1828" data-reserve="1" data-roomid="47631642PP">
<span class="room_type_name">标准价</span>
<span data-params="{'options':{'type':'jmp_table','template':'#jmpTempGift','content':{'gift':'T','giftinfo':'每间夜可获得竹林自助餐厅午餐或晚餐1次,每次最多房间内2名已办理入住客人可用。仅限入住期间使用,具体餐次由客人自选,暂不提供周日和国家法定节假日最后一日晚餐。','ShadowGift':'F','package':'F'},'classNames':{'boxType':'jmp_table'},'css':{'maxWidth':500},'group':'gift'}}" data-role="jmp"><span class="label_onsale_orange" style="margin-right: 0px">礼</span></span><input class="spfrom" type="hidden" value="-1"/>
</td>, <td class="child_name J_Col_RoomName" data-bed="2" data-bf="3" data-ctrip="1" data-firstmap="47630897PP,47631644PP," data-hotelinvoice="1" data-networklan="1" data-networkwifi="1" data-pay="3" data-personmatch="false" data-policy="3" data-price="1609" data-pricedisplay="1609" data-reserve="1" data-roomid="47630897PP">
<span class="room_type_name">标准价</span>
<span data-params="{'options':{'type':'jmp_table','template':'#jmpTempGift','content':{'gift':'T','giftinfo':'每间夜可获得竹林自助餐厅午餐或晚餐1次,每次最多房间内2名已办理入住客人可用。仅限入住期间使用,具体餐次由客人自选,暂不提供周日和国家法定节假日最后一日晚餐。','ShadowGift':'F','package':'F'},'classNames':{'boxType':'jmp_table'},'css':{'maxWidth':500},'group':'gift'}}" data-role="jmp"><span class="label_onsale_orange" style="margin-right: 0px">礼</span></span><input class="spfrom" type="hidden" value="-1"/>
</td>, <td class="child_name J_Col_RoomName" data-baseroominfo='{"RoomUrl":"//dimg13.c-ctrip.com/images/200a0m000000djgmfE42D_R_300_225.jpg","RoomID":27541231,"RoomName":"豪华双床房","BaseRoomInfo":"40平方米<span class=\"line\">|</span>3-8层<span class=\"line\">|</span>不可吸烟<span class=\"line\">|</span>2张1.35米单人床<span class=\"line\">|</span>不可加床<span class=\"line\">|</span>2人","ConvenientFacilities":null,"MediaTechnology":null,"FoodBeverages":null,"Bathroom":null,"OutdoorsViews":null,"ServicesOthers":null,"PriceNum":2,"LowPrice":1609.0,"RoomTotalNum":2}' data-baseroomname="豪华双床房" data-bed="2" data-bf="1" data-ctrip="1" data-hotelinvoice="1" data-networklan="1" data-networkwifi="1" data-pay="3" data-personmatch="false" data-policy="3" data-price="1848" data-pricedisplay="1848" data-reserve="1" data-roomid="47631644PP">
<span class="room_type_name">标准价</span>
<span data-params="{'options':{'type':'jmp_table','template':'#jmpTempGift','content':{'gift':'T','giftinfo':'每间夜可获得竹林自助餐厅午餐或晚餐1次,每次最多房间内2名已办理入住客人可用。仅限入住期间使用,具体餐次由客人自选,暂不提供周日和国家法定节假日最后一日晚餐。','ShadowGift':'F','package':'F'},'classNames':{'boxType':'jmp_table'},'css':{'maxWidth':500},'group':'gift'}}" data-role="jmp"><span class="label_onsale_orange" style="margin-right: 0px">礼</span></span><input class="spfrom" type="hidden" value="-1"/>
</td>, <td class="child_name J_Col_RoomName" data-addbed="1" data-bed="1" data-bf="3" data-ctrip="1" data-firstmap="47630899PP,47631646PP," data-hotelinvoice="1" data-networklan="1" data-networkwifi="1" data-pay="3" data-personmatch="false" data-policy="3" data-price="3429" data-pricedisplay="3429" data-reserve="1" data-roomid="47630899PP">
<span class="room_type_name">标准价</span>
<span data-params="{'options':{'type':'jmp_table','template':'#jmpTempGift','content':{'gift':'T','giftinfo':'首日可获店酒(法国教皇新堡干红)1瓶<br />每间夜可获竹林自助餐厅午餐和晚餐各1次,每次最多房间内2名已办理入住客人可用。仅限入住期间使用,暂不提供周日和国家法定节假日最后一日晚餐。','ShadowGift':'F','package':'F'},'classNames':{'boxType':'jmp_table'},'css':{'maxWidth':500},'group':'gift'}}" data-role="jmp"><span class="label_onsale_orange" style="margin-right: 0px">礼</span></span><input class="spfrom" type="hidden" value="-1"/>
</td>, <td class="child_name J_Col_RoomName" data-addbed="1" data-baseroominfo='{"RoomUrl":"//dimg11.c-ctrip.com/images/200s090000003y41p18C8_R_300_225.jpg","RoomID":27541233,"RoomName":"豪华商务套房","BaseRoomInfo":"80平方米<span class=\"line\">|</span>3-5层<span class=\"line\">|</span>不可吸烟<span class=\"line\">|</span>1张2米双人床<span class=\"line\">|</span>2人","ConvenientFacilities":null,"MediaTechnology":null,"FoodBeverages":null,"Bathroom":null,"OutdoorsViews":null,"ServicesOthers":null,"PriceNum":2,"LowPrice":3429.0,"RoomTotalNum":2}' data-baseroomname="豪华商务套房" data-bed="1" data-bf="1" data-ctrip="1" data-hotelinvoice="1" data-networklan="1" data-networkwifi="1" data-pay="3" data-personmatch="false" data-policy="3" data-price="3668" data-pricedisplay="3668" data-reserve="1" data-roomid="47631646PP">
<span class="room_type_name">标准价</span>
<span data-params="{'options':{'type':'jmp_table','template':'#jmpTempGift','content':{'gift':'T','giftinfo':'首日可获店酒(法国教皇新堡干红)1瓶<br />每间夜可获竹林自助餐厅午餐和晚餐各1次,每次最多房间内2名已办理入住客人可用。仅限入住期间使用,暂不提供周日和国家法定节假日最后一日晚餐。','ShadowGift':'F','package':'F'},'classNames':{'boxType':'jmp_table'},'css':{'maxWidth':500},'group':'gift'}}" data-role="jmp"><span class="label_onsale_orange" style="margin-right: 0px">礼</span></span><input class="spfrom" type="hidden" value="-1"/>
</td>, <td class="child_name J_Col_RoomName" data-addbed="1" data-bed="1" data-bf="3" data-ctrip="1" data-firstmap="58939955PP,58939956PP," data-hotelinvoice="1" data-networkwifi="1" data-pay="3" data-personmatch="false" data-policy="3" data-price="1839" data-pricedisplay="1839" data-reserve="1" data-roomid="58939955PP">
<span class="room_type_name">标准价</span>
<span data-params="{'options':{'type':'jmp_table','template':'#jmpTempGift','content':{'gift':'T','giftinfo':'每间夜可获得竹林自助餐厅午餐或晚餐1次,每次最多房间内2名已办理入住客人可用。仅限入住期间使用,具体餐次由客人自选,暂不提供周日和国家法定节假日最后一日晚餐。','ShadowGift':'F','package':'F'},'classNames':{'boxType':'jmp_table'},'css':{'maxWidth':500},'group':'gift'}}" data-role="jmp"><span class="label_onsale_orange" style="margin-right: 0px">礼</span></span><input class="spfrom" type="hidden" value="-1"/>
</td>, <td class="child_name J_Col_RoomName" data-addbed="1" data-baseroominfo='{"RoomUrl":"//dimg13.c-ctrip.com/images/20090d0000006y7k06A04_R_300_225.jpg","RoomID":33300631,"RoomName":"豪华商务大床房","BaseRoomInfo":"46平方米<span class=\"line\">|</span>3、5-8层<span class=\"line\">|</span>不可吸烟<span class=\"line\">|</span>1张2米双人床<span class=\"line\">|</span>2人","ConvenientFacilities":null,"MediaTechnology":null,"FoodBeverages":null,"Bathroom":null,"OutdoorsViews":null,"ServicesOthers":null,"PriceNum":2,"LowPrice":1839.0,"RoomTotalNum":2}' data-baseroomname="豪华商务大床房" data-bed="1" data-bf="2" data-ctrip="1" data-hotelinvoice="1" data-networkwifi="1" data-pay="3" data-personmatch="false" data-policy="3" data-price="1956" data-pricedisplay="1956" data-reserve="1" data-roomid="58939956PP">
<span class="room_type_name">标准价</span>
<span data-params="{'options':{'type':'jmp_table','template':'#jmpTempGift','content':{'gift':'T','giftinfo':'每间夜可获得竹林自助餐厅午餐或晚餐1次,每次最多房间内2名已办理入住客人可用。仅限入住期间使用,具体餐次由客人自选,暂不提供周日和国家法定节假日最后一日晚餐。','ShadowGift':'F','package':'F'},'classNames':{'boxType':'jmp_table'},'css':{'maxWidth':500},'group':'gift'}}" data-role="jmp"><span class="label_onsale_orange" style="margin-right: 0px">礼</span></span><input class="spfrom" type="hidden" value="-1"/>
</td>, <td class="child_name J_Col_RoomName" data-addbed="1" data-baseroominfo='{"RoomUrl":"//dimg12.c-ctrip.com/images/20080d0000006y7xj88C1_R_300_225.jpg","RoomID":33300678,"RoomName":"奢华特色套房","BaseRoomInfo":"80平方米<span class=\"line\">|</span>3、5层<span class=\"line\">|</span>不可吸烟<span class=\"line\">|</span>1张2米双人床<span class=\"line\">|</span>2人","ConvenientFacilities":null,"MediaTechnology":null,"FoodBeverages":null,"Bathroom":null,"OutdoorsViews":null,"ServicesOthers":null,"PriceNum":1,"LowPrice":5459.0,"RoomTotalNum":1}' data-baseroomname="奢华特色套房" data-bed="1" data-bf="1" data-ctrip="1" data-hotelinvoice="1" data-networkwifi="1" data-pay="3" data-personmatch="false" data-policy="3" data-price="5459" data-pricedisplay="5459" data-reserve="1" data-roomid="58939960PP">
<span class="room_type_name">标准价</span>
<span data-params="{'options':{'type':'jmp_table','template':'#jmpTempGift','content':{'gift':'T','giftinfo':'首日可获店酒(法国教皇新堡干红)1瓶<br />每间夜可获竹林自助餐厅午餐和晚餐各1次,每次最多房间内2名已办理入住客人可用。仅限入住期间使用,暂不提供周日和国家法定节假日最后一日晚餐。','ShadowGift':'F','package':'F'},'classNames':{'boxType':'jmp_table'},'css':{'maxWidth':500},'group':'gift'}}" data-role="jmp"><span class="label_onsale_orange" style="margin-right: 0px">礼</span></span><input class="spfrom" type="hidden" value="-1"/>
</td>, <td class="child_name J_Col_RoomName" data-baseroominfo='{"RoomUrl":"//dimg12.c-ctrip.com/images/20040n000000e01bjDEF1_R_300_225.jpg","RoomID":37303662,"RoomName":"高级大床房","BaseRoomInfo":"35平方米<span class=\"line\">|</span>3-10层<span class=\"line\">|</span>不可吸烟<span class=\"line\">|</span>1张2米双人床<span class=\"line\">|</span>不可加床<span class=\"line\">|</span>2人","ConvenientFacilities":null,"MediaTechnology":null,"FoodBeverages":null,"Bathroom":null,"OutdoorsViews":null,"ServicesOthers":null,"PriceNum":1,"LowPrice":1328.0,"RoomTotalNum":1}' data-baseroomname="高级大床房" data-bed="1" data-bf="3" data-ctrip="1" data-hotelinvoice="1" data-networkwifi="1" data-pay="3" data-personmatch="false" data-policy="1|2" data-price="1328" data-pricedisplay="1328" data-reserve="1" data-roomid="67950117PP">
<span class="room_type_name">(无景/不规则)</span>
<span data-params="{'options':{'type':'jmp_table','template':'#jmpTempGift','content':{'gift':'T','giftinfo':'每间夜可获得竹林自助餐厅午餐或晚餐1次,每次最多房间内2名已办理入住客人可用。仅限入住期间使用,具体餐次由客人自选,暂不提供周日和国家法定节假日最后一日晚餐。','ShadowGift':'F','package':'F'},'classNames':{'boxType':'jmp_table'},'css':{'maxWidth':500},'group':'gift'}}" data-role="jmp"><span class="label_onsale_orange" style="margin-right: 0px">礼</span></span><input class="spfrom" type="hidden" value="-1"/>
</td>, <td class="child_name J_Col_RoomName" data-addbed="1" data-baseroominfo='{"RoomUrl":"//dimg11.c-ctrip.com/images/200p0v000000jszjtD57F_R_300_225.jpg","RoomID":79467148,"RoomName":"豪华公寓套房","BaseRoomInfo":"80平方米<span class=\"line\">|</span>9层<span class=\"line\">|</span>不可吸烟<span class=\"line\">|</span>1张2米特大床<span class=\"line\">|</span>2人","ConvenientFacilities":null,"MediaTechnology":null,"FoodBeverages":null,"Bathroom":null,"OutdoorsViews":null,"ServicesOthers":null,"PriceNum":1,"LowPrice":3856.0,"RoomTotalNum":1}' data-baseroomname="豪华公寓套房" data-bed="1" data-bf="3" data-ctrip="1" data-hotelinvoice="1" data-networkwifi="1" data-pay="3" data-personmatch="false" data-policy="1|2" data-price="3856" data-pricedisplay="3856" data-reserve="1" data-roomid="178457389PP">
<span class="room_type_name">标准价</span>
<input class="spfrom" type="hidden" value="-1"/>
</td>, <td class="child_name J_Col_RoomName" data-addbed="1" data-baseroominfo='{"RoomUrl":"//dimg10.c-ctrip.com/images/20050v000000jwzjx420F_R_300_225.jpg","RoomID":79467149,"RoomName":"至尊公寓套房","BaseRoomInfo":"80平方米<span class=\"line\">|</span>11层<span class=\"line\">|</span>不可吸烟<span class=\"line\">|</span>1张2米特大床<span class=\"line\">|</span>2人","ConvenientFacilities":null,"MediaTechnology":null,"FoodBeverages":null,"Bathroom":null,"OutdoorsViews":null,"ServicesOthers":null,"PriceNum":1,"LowPrice":6438.0,"RoomTotalNum":1}' data-baseroomname="至尊公寓套房" data-bed="1" data-bf="3" data-ctrip="1" data-hotelinvoice="1" data-networkwifi="1" data-pay="3" data-personmatch="false" data-policy="1|2" data-price="6438" data-pricedisplay="6438" data-reserve="1" data-roomid="178457784PP">
<span class="room_type_name">标准价</span>
<input class="spfrom" type="hidden" value="-1"/>
</td>]
结果存放于一个列表中,已经比最初返回的html代码简洁很多。
3.3.2 正则表达式提取字符串信息
3.3.1 中返回的结果列表,已经包含了本文所需要提取的全部信息。但是,出于美观,以及对技术的深入追求,我们需要的只是文字信息,并不需要类似于<span>等字样。因此,这部分的工作内容是使用正则表达式,从3.3.1返回的结果列表中提取出我们需要的文字信息。
利用Python中内建函数type(),可以发现列表中内容的类别为<class 'bs4.element.Tag'>
print(type(rooms[0]))
# <class 'bs4.element.Tag'>
我们需要的信息,存放于key(键名)为data-baseroominfo的属性中,利用BeautifulSoup中has_attr这一属性进行判断。当列表中该项包含这一属性,将其提取出来,并将其转化为JSON对象。房型ID、房型名称、最低价,可以直接通过JSON对象直接获取。
但是,我们发现,在“BaseRoomInfo”这一项中,仍包含<span>等一系列我们不需要的字样。此时,需要借助正则表达式进行数据提取。过程如下:
1. 在Python3中使用正则表达式,首先需要先导入该包。
import re
2. 然后,构建正则表达式语句。这一部分是关键。原始字符串为:
raw_str = "80平方米<span class=\"line\">|</span>3、5层<span class=\"line\">|</span>不可吸烟<span class=\"line\">|</span>1张2米双人床<span class=\"line\">|</span>2人"
匹配语句为:
baseroom_pattern = re.compile(r'<[^>]+>')
匹配语句解释:
- ‘<’表示从该符号开始;
- [^>]表示匹配除了‘>’符号以外的任意字符;
- ‘+’表示重复一次或更多次;
- ‘>’表示倒该符号停止。
3. 运用正则表达式的替换功能,将匹配的语句用空字符串进行替换,即可实现删除多余字样。代码与替换结果如下:
remove_tag = baseroom_pattern.sub("",baseroom_info)
print(remove_tag)# Result
# 40平方米|3-8层|不可吸烟|1张2米双人床|2人
4. 使用字符串内建函数split(),即可实现删除3中结果的“|”线。
RoomDetailInfo = remove_tag.split("|")
print(RoomDetailInfo)# Result
# ['40平方米', '3-8层', '不可吸烟', '1张2米双人床', '2人']
5. 正则表达式进行信息提取的这部分代码:
# Regex Patternbaseroom_pattern = re.compile(r'<[^>]+>') # r'<[^>]+>'for idx in range(len(rooms)):if rooms[idx].has_attr(key='data-baseroominfo'):room_info_str = rooms[idx]['data-baseroominfo']room_info_json = json.loads(room_info_str)RoomID.append(str(room_info_json["RoomID"]))RoomName.append(room_info_json["RoomName"])LowPrice.append(room_info_json["LowPrice"])baseroom_info = room_info_json["BaseRoomInfo"]# print(type(baseroom_info))# <class 'str'>remove_tag = baseroom_pattern.sub("", baseroom_info)RoomDetailInfo = remove_tag.split("|")if len(RoomDetailInfo) == 4:RoomDetailInfo.insert(3, None)RoomSize.append(RoomDetailInfo[0])RoomLevel.append(RoomDetailInfo[1])BedSize.append(RoomDetailInfo[2])IsAddBed.append(RoomDetailInfo[3])CustomerNum.append(RoomDetailInfo[4])else:continue
3.3.3 整合为Pandas.DataFrame对象
3.3.2 完成了对信息的提取,本部分内容将提取的列表整合为一个矩阵,然后用Pandas.DataFrame进行展示。
RoomInfo = np.array((RoomID, RoomName, LowPrice, RoomSize, RoomLevel, BedSize, IsAddBed, CustomerNum)).T# Create a DataFrame object
column_name = ['RoomID', 'RoomName', 'LowPrice', 'RoomSize', 'RoomLevel', 'BedSize', 'IsAddBed', 'CustomerNum']
df = pd.DataFrame(data=RoomInfo, columns=column_name)
4. 完整代码
4.1 完整代码实现
本篇文章,是Python3 爬取携程网[1]的延续。所以,逻辑思路如下:
- 首先将爬取北京某一五星级酒店详细信息这一系列操作封装为一个函数;
- 读取Python3 爬取携程网[1]保存的csv文件;
- 根据显示,输入任意酒店的索引值,执行第1步封装的函数,即可实现对这一酒店详细信息的展示。
完整代码如下:
# coding=utf8
import numpy as np
import pandas as pd
from bs4 import BeautifulSoup
import requests
import random
import time
import csv
import json
import repd.set_option('display.max_columns', 10000)
pd.set_option('display.max_rows', 10000)
pd.set_option('display.max_colwidth', 10000)
pd.set_option('display.width',1000)# Beijing 5 star hotel list url
five_star_url = "http://hotels.ctrip.com/Domestic/Tool/AjaxHotelList.aspx"
filename = "./Data/Beijing 5 star hotel list.csv"def Scrap_hotel_lists():"""It aims to crawl the 5 star hotel lists in Beijing and save in a csv file."""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","Content-Type":"application/x-www-form-urlencoded; charset=utf-8"}id = []name = []hotel_url = []address = []score = []# 8 pagesfor page in range(1,8):data = {"StartTime": "2019-03-18", # The value depends on the date you want to scrap."DepTime": "2019-03-20","RoomGuestCount": "0,1,2","cityId": 1,"cityPY": " beijing","cityCode": "010","cityLat": 39.9105329229,"cityLng": 116.413784021,"page": page,"star": 5,"orderby": 3}html = requests.post(five_star_url, headers=headers, data=data)hotel_list = html.json()["hotelPositionJSON"]for item in hotel_list:id.append(item['id'])name.append(item['name'])hotel_url.append(item['url'])address.append(item['address'])score.append(item['score'])time.sleep(random.randint(3,5))hotel_array = np.array((id, name, score, hotel_url, address)).Tlist_header = ['id', 'name', 'score', 'url', 'address']array_header = np.array((list_header))hotellists = np.vstack((array_header, hotel_array))with open(filename, 'w', encoding="utf-8-sig", newline="") as f:csvwriter = csv.writer(f, dialect='excel')csvwriter.writerows(hotellists)def hotel_detail(hotel_id):"""It aims to scrap the detailed information of a specific hotel."""headers = {"Connection": "keep-alive","Accept-Language": "zh-CN,zh;q=0.9","Cache-Control": "max-age=0","Content-Type": "application/x-www-form-urlencoded; charset=utf-8","Host": "hotels.ctrip.com","If-Modified-Since": "Thu, 01 Jan 1970 00:00:00 GMT","Referer": "http://hotels.ctrip.com/hotel/2231618.html","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"}basic_url = "http://hotels.ctrip.com/Domestic/tool/AjaxHote1RoomListForDetai1.aspx?hotel="url = basic_url + str(hotel_id)r = requests.get(url, headers=headers)# Response is a json object.html = r.json()['html']soup = BeautifulSoup(html, "lxml")rooms = soup.findAll('td', attrs={"class": "child_name J_Col_RoomName"})RoomID = []RoomName = []LowPrice = []RoomSize = []RoomLevel = []IsAddBed = []BedSize = []CustomerNum = []# Regex Patternbaseroom_pattern = re.compile(r'<[^>]+>') # r'<[^>]+>'for idx in range(len(rooms)):if rooms[idx].has_attr(key='data-baseroominfo'):room_info_str = rooms[idx]['data-baseroominfo']room_info_json = json.loads(room_info_str)RoomID.append(str(room_info_json["RoomID"]))RoomName.append(room_info_json["RoomName"])LowPrice.append(room_info_json["LowPrice"])baseroom_info = room_info_json["BaseRoomInfo"]# print(type(baseroom_info))# <class 'str'>remove_tag = baseroom_pattern.sub("", baseroom_info)RoomDetailInfo = remove_tag.split("|")if len(RoomDetailInfo) == 4:RoomDetailInfo.insert(3, None)RoomSize.append(RoomDetailInfo[0])RoomLevel.append(RoomDetailInfo[1])BedSize.append(RoomDetailInfo[2])IsAddBed.append(RoomDetailInfo[3])CustomerNum.append(RoomDetailInfo[4])else:continueRoomInfo = np.array((RoomID, RoomName, LowPrice, RoomSize, RoomLevel, BedSize, IsAddBed, CustomerNum)).T# Create a DataFrame object# print(RoomInfo)column_name = ['RoomID', 'RoomName', 'LowPrice', 'RoomSize', 'RoomLevel', 'BedSize', 'IsAddBed', 'CustomerNum']df = pd.DataFrame(data=RoomInfo, columns=column_name)print(df)if __name__ == "__main__":# 1. Scrap 5 star hotel list in Beijing# Scrap_hotel_lists()# 2. Scrap the detailed hotel informationdf = pd.read_csv(filename, encoding='utf8')print("1. Beijing 5 Star Hotel Lists")print(df)hotelID = df["id"]print('\n')while True:print("2.1 If you find to search the detail hotel information, please input the hotel index in the DataFrame.")print("2.2 If you want to quit, input 'q'.")print("Please input the Parameter: ")input_param = input()if input_param.isnumeric():hotel_index = int(input_param)if 0 <= hotel_index <= 170:print("3. The detail information of the Hotel:")hotel_detail(hotelID[hotel_index])else:print('Hotel Index out of range! ')print('Remember: 0 <= Hotel Index <= 170')print('Please input again.')continueelif input_param == 'q':print('See you later!')breakelse:print('Invalid Input!')print('\n')continue
4.2 运行结果展示
- 读取保存的csv文件,并用Pandas.DataFrame进行展示。这部分结果如下:
1. Beijing 5 Star Hotel Listsid name score url address
0 6147365 北京朝林松源酒店 4.9 /hotel/6147365.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_1 大兴区经济技术开发区荣华中路19号,近亦庄管委会。 ( 亦庄地区)
1 369673 北京歌华开元大酒店 4.8 /hotel/369673.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_2 朝阳区北三环鼓楼外大街19号,近安华桥。 ( 马甸、安贞地区)
2 375265 北京京都信苑饭店 4.8 /hotel/375265.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_3 海淀区什坊院6号莲花桥畔,近地铁10号线莲花桥站B出口。 ( 北京西站、丽泽商务区西单、金融街地区)
3 2215343 北京诺金酒店 4.8 /hotel/2215343.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_4 朝阳区将台路甲2号,近机场高速。 ( 望京、酒仙桥、798地区)
4 984991 北京中乐六星酒店 4.8 /hotel/984991.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_5 丰台区方庄芳群园三区4号,近群星路。 ( 劲松、潘家园地区)
5 939388 北京国二招宾馆(东楼) 4.8 /hotel/939388.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_6 西城区西直门南大街6号 (南门),西直门桥东南角,北大人民医院东侧(西直门地铁C出口)。 ( 西直门及北京展览馆地区西单、金融街地区)
6 391750 北京四季酒店 4.8 /hotel/391750.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_7 朝阳区亮马桥路48号,近燕莎桥。 ( 燕莎、三里屯商业区)
7 1198297 北京瑰丽酒店 4.8 /hotel/1198297.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_8 朝阳区呼家楼京广中心,近京广桥。 ( 国贸地区东直门、工体、雍和宫地区)
8 347422 北京嘉里大酒店 4.8 /hotel/347422.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_9 朝阳区光华路1号,光华桥西侧。 ( 国贸地区)
9 5032132 北京泰富酒店 4.8 /hotel/5032132.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_10 海淀区西土城路1号院1号楼,近知春路、地铁10号线-西土城站(D出口)。 ( 中关村、五道口)
10 369675 北京国贸大酒店 4.8 /hotel/369675.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_11 朝阳区建国门外大街1号(前台位于64层),近建国门外大街。 ( 国贸地区)
11 735707 北京华尔道夫酒店 4.8 /hotel/735707.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_12 东城区金鱼胡同5-15号,近王府井步行街、天安门。 ( 天安门、王府井地区)
12 1641390 北京VUE后海酒店 4.8 /hotel/1641390.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_13 西城区德内大街羊房胡同9号,后海边,近恭王府、南锣鼓巷、宋庆龄郭沫若故居,积水潭医院、北大医院,6号线北海北站东南口。 ( 后海、南锣鼓巷地区天安门、王府井地区)
13 1288173 北京朗丽兹西山花园酒店 4.8 /hotel/1288173.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_14 海淀区永丰路与北清路十字路口往南800米路南,近丰滢东路。 ( 上地产业园、西三旗)
14 2231618 北京东直门亚朵S酒店 4.8 /hotel/2231618.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_15 朝阳区香河园路左家庄15号,近东直门万国城。 ( 国展中心地区东直门、工体、雍和宫地区)
15 1707138 北京雁栖酒店 4.8 /hotel/1707138.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_16 怀柔区雁栖湖西路2号院14号楼,雁栖湖雁栖岛、红螺寺、青龙峡、凯宾斯基集团。 ( 怀柔风景区)
16 429034 北京盘古七星酒店 4.8 /hotel/429034.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_17 朝阳区北四环中路27号,盘古大观,近奥运村国家体育馆。 ( 亚运村、奥体中心地区)
17 424787 北京瑞吉酒店 4.8 /hotel/424787.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_18 朝阳区建国门外大街21号,建国门桥东北角,建国门地铁站B口700米处。 ( 北京站、建国门地区)
18 369700 北京丽晶酒店 4.7 /hotel/369700.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_19 东城区金宝街99号,近北京金宝大厦。 ( 天安门、王府井地区)
19 429203 北京励骏酒店 4.7 /hotel/429203.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_20 东城区金宝街92号,近国旅大厦。 ( 天安门、王府井地区)
20 437440 北京乾元酒店 4.7 /hotel/437440.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_21 东城区东直门内大街19号,近建设部综合勘察研究设计院。 ( 东直门、工体、雍和宫地区)
21 427807 北京长富宫饭店 4.7 /hotel/427807.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_22 朝阳区建国门外大街26号,近建国南大街。 ( 北京站、建国门地区)
22 396423 北京昆仑饭店 4.7 /hotel/396423.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_23 朝阳区新源南路2号,燕莎友谊商城正对面。 ( 燕莎、三里屯商业区)
23 429533 北京昆泰嘉华酒店 4.7 /hotel/429533.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_24 朝阳区朝外大街乙12号,近蓝岛大厦和丰联广场。 ( 东直门、工体、雍和宫地区)
24 374778 北京富力万丽酒店 4.7 /hotel/374778.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_25 朝阳区东三环中路61号,近广渠路。 ( 国贸地区)
25 345025 北京中奥马哥孛罗大酒店 4.7 /hotel/345025.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_1 朝阳区安立路78号。 ( 亚运村、奥体中心地区)
26 369708 北京首都机场希尔顿酒店 4.7 /hotel/369708.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_2 顺义区首都机场3号航站楼,三经路与二纬路的交汇处。 ( 首都机场、新国展地区)
27 391657 北京朝阳悠唐皇冠假日酒店 4.7 /hotel/391657.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_3 朝阳区三丰北里3号(外交部东南侧),近朝外市场街。 ( 东直门、工体、雍和宫地区)
28 1739375 北京日出东方凯宾斯基酒店 4.7 /hotel/1739375.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_4 怀柔区雁栖湖雁水路甲18号,雁栖湖、红螺寺、青龙峡、观山邸、慕田峪、。 ( 怀柔风景区)
29 419959 金茂北京威斯汀大饭店 4.7 /hotel/419959.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_5 朝阳区东三环北路7号,近地铁亮马桥站。 ( 燕莎、三里屯商业区)
30 434333 北京唯实酒店(唯实国际文化交流中心) 4.7 /hotel/434333.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_6 海淀区学院路39号,近北京航空航天大学东门。 ( 中关村、五道口)
31 928851 北京丽都皇冠假日酒店 4.7 /hotel/928851.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_7 朝阳区将台路6号,与京密路交汇处。 ( 望京、酒仙桥、798地区)
32 2083684 北京云瑧金陵莲花酒店(原世纪莲花酒店) 4.7 /hotel/2083684.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_8 丰台区莲花池南路1号院1号楼,近西客站南广场。 ( 北京西站、丽泽商务区)
33 374776 北京华彬费尔蒙酒店 4.7 /hotel/374776.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_9 朝阳区建国门外街永安东里8号,近长安街。 ( 国贸地区)
34 429505 北京东隅酒店 4.7 /hotel/429505.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_10 朝阳区酒仙桥路22号,近酒仙桥。 ( 望京、酒仙桥、798地区)
35 391655 北京JW万豪酒店 4.7 /hotel/391655.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_11 朝阳区华贸中心建国路83号,近新光天地。 ( 国贸地区)
36 467314 北京工大建国饭店 4.7 /hotel/467314.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_12 朝阳区平乐园100号,北京工业大学南门,出门即是地铁14号线北工大站,打车到国贸周边起步即到,近大望路建国路国贸桥。 ( 劲松、潘家园地区国贸地区)
37 7492873 北京新国贸饭店 4.7 /hotel/7492873.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_13 朝阳区建国门外大街一号,近国贸3期B座。 ( 国贸地区)
38 387045 北京金融街威斯汀大酒店 4.7 /hotel/387045.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_14 西城区金融大街丙9号,近月坛北桥。 ( 西单、金融街地区)
39 393315 北京丽思卡尔顿酒店(华贸中心) 4.7 /hotel/393315.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_15 朝阳区华贸中心建国路甲83号,近新光天地。 ( 国贸地区)
40 378583 北京中国大饭店 4.7 /hotel/378583.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_16 朝阳区建国门外大街1号,近国际贸易中心。 ( 国贸地区)
41 430265 北京新云南皇冠假日酒店 4.7 /hotel/430265.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_17 朝阳区东北三环西坝河太阳宫桥东北角云南大厦。 ( 国展中心地区)
42 5659815 北京三里屯通盈中心洲际酒店 4.7 /hotel/5659815.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_18 朝阳区南三里屯1号楼,近工体北街。 ( 东直门、工体、雍和宫地区国贸地区)
43 9215536 北京泛太平洋酒店 4.7 /hotel/9215536.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_19 西城区华远街2号,近地铁1号线西单站A口出,4号线西单站F2口出。 ( 西单、金融街地区)
44 732835 北京友谊宾馆贵宾楼 4.7 /hotel/732835.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_20 海淀区中关村南大街1号贵宾楼,近校园北路。 ( 中关村、五道口)
45 6182624 北京格兰云天国际酒店 4.7 /hotel/6182624.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_21 大兴区亦庄经济技术开发区荣华南路15号中航技广场10号楼,近同仁医院(南区)。 ( 亦庄地区)
46 7008001 北京海湾半山温泉酒店 4.7 /hotel/7008001.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_22 密云区密溪路36号,近密云水库。 ( 密云风景区)
47 427952 北京金隅喜来登酒店 4.7 /hotel/427952.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_23 东城区北三环东路36号,近地铁5号线和平西桥站A口。 ( 马甸、安贞地区)
48 535068 北京蔓兰酒店 4.7 /hotel/535068.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_24 东城区东直门外香河园路1号当代MOMA内T6号楼,近左家庄西街、工体、簋街。 ( 国展中心地区)
49 374792 北京王府半岛酒店 4.7 /hotel/374792.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_25 东城区王府井金鱼胡同8号,近王府井步行街。 ( 天安门、王府井地区)
50 661166 北京丽苑公寓 4.7 /hotel/661166.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_1 东城区王府井金鱼胡同18号,近协和医院。 ( 天安门、王府井地区)
51 1171744 北京东方美高美国际酒店 4.7 /hotel/1171744.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_2 丰台区文林北街2号,近良三路。 ( 房山风景区)
52 9371514 北京东直门雅辰悦居酒店 4.7 /hotel/9371514.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_3 东城区香河园街1号院11号楼,近机场高速。 ( 东直门、工体、雍和宫地区燕莎、三里屯商业区)
53 387040 北京金融街丽思卡尔顿酒店 4.7 /hotel/387040.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_4 西城区金融街金城坊东街1号,太平桥大街路口。 ( 西单、金融街地区)
54 419951 北京柏悦酒店 4.7 /hotel/419951.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_5 朝阳区建国门外大街2号,近国贸立交桥西南角。 ( 国贸地区)
55 440874 北京怡亨酒店 4.7 /hotel/440874.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_6 朝阳区东大桥路9号,近日坛北路。 ( 东直门、工体、雍和宫地区)
56 429118 北京万豪行政公寓 4.7 /hotel/429118.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_7 东城区霞公府街1号北门,近王府井大街、商业街。 ( 天安门、王府井地区)
57 21785802 北京金融街行政公寓 4.8 /hotel/21785802.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_8 西城区金融大街乙9号。 ( 西单、金融街地区天安门、王府井地区)
58 6806947 北京宝格丽酒店 4.7 /hotel/6806947.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_9 朝阳区新源南路8号院2号楼,近地铁10号线亮马桥站。 ( 燕莎、三里屯商业区)
59 6057426 欢墅·度假别墅(北京古北长城源著店) 4.7 /hotel/6057426.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_10 密云区古北水镇国际旅游度假区龙湖长城源著小区内,近古北水镇、大广高速京承段司马台收费站、古北水镇售票大厅。 ( 密云风景区)
60 374781 北京首都宾馆 4.6 /hotel/374781.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_11 东城区前门东大街3号,近正义路。 ( 天安门、王府井地区)
61 385114 北京千禧大酒店 4.6 /hotel/385114.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_12 朝阳区东三环中路7号,近财富中心。 ( 国贸地区)
62 427091 北京鹏润国际大酒店 4.6 /hotel/427091.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_13 朝阳区霄云路26号,近天泽路。 ( 燕莎、三里屯商业区望京、酒仙桥、798地区)
63 429037 北京远通维景国际大酒店 4.6 /hotel/429037.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_14 西城区平安里西大街30号,近官园桥。 ( 西单、金融街地区)
64 419461 北京天伦王朝酒店 4.6 /hotel/419461.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_15 东城区王府井大街50号,近天主教堂、天安门。 ( 天安门、王府井地区)
65 426113 北京世纪金源大饭店 4.6 /hotel/426113.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_16 海淀区板井路69号,北京四季青桥东北角。 ( 西直门及北京展览馆地区)
66 996471 北京丰大国际大酒店 4.6 /hotel/996471.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_17 大兴区经济技术开发区荣华中路20号,近荣京东街。 ( 亦庄地区)
67 347426 北京东方君悦大酒店 4.6 /hotel/347426.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_18 东城区长安街1号东方广场,北京东方广场内。 ( 天安门、王府井地区)
68 608421 北京国家会议中心大酒店 4.6 /hotel/608421.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_19 朝阳区北辰西路8号院1号楼,近大屯路。 ( 亚运村、奥体中心地区)
69 375511 北京万达文华酒店 4.6 /hotel/375511.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_20 朝阳区建国路93号万达广场C座,近Soho现代城。 ( 国贸地区)
70 375093 北京首都机场东海康得思酒店(原朗豪酒店) 4.6 /hotel/375093.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_21 顺义区首都机场三号航站楼一经路1号,近T3航站楼。 ( 首都机场、新国展地区)
71 634858 北京新世界酒店 4.6 /hotel/634858.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_22 东城区祈年大街8号,近东打磨厂街。 ( 前门、崇文门商贸区)
72 4889269 北京维景国际大酒店 4.6 /hotel/4889269.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_23 朝阳区北三环东路2号,近三元桥。 ( 国展中心地区)
73 429548 北京香格里拉饭店 4.6 /hotel/429548.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_24 海淀区紫竹院路29号,紫竹桥西北侧。 ( 西直门及北京展览馆地区)
74 483697 北京世纪金源香山商旅酒店 4.6 /hotel/483697.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_25 海淀区北正黄旗59号,近香山公园东门。 ( 香山、八大处风景区)
75 749504 北京百富怡大酒店 4.6 /hotel/749504.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_1 东城区东直门外大街南二里庄19号,近东直门外小街。 ( 东直门、工体、雍和宫地区)
76 431636 北京北大博雅国际酒店 4.6 /hotel/431636.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_2 海淀区中关村北大街127号,近北京大学-资源楼。 ( 中关村、五道口)
77 374795 北京伯豪瑞廷酒店 4.6 /hotel/374795.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_3 朝阳区光华路15号,近景闻街。 ( 国贸地区)
78 837819 北京裕龙国际酒店 4.6 /hotel/837819.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_4 海淀区阜成路40号,近空军总医院。 ( 公主坟、五棵松、石景山游乐园地区)
79 347308 北京王府井希尔顿酒店 4.6 /hotel/347308.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_5 东城区王府井东街8号,近澳门中心及王府半岛。 ( 天安门、王府井地区)
80 452641 北京日坛宾馆 4.6 /hotel/452641.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_6 朝阳区日坛路1号,近雅宝路。 ( 东直门、工体、雍和宫地区)
81 661096 北京凯迪克格兰云天大酒店 4.6 /hotel/661096.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_7 朝阳区北辰东路18号(近北京奥运会主会场-鸟巢)。 ( 亚运村、奥体中心地区)
82 427497 北京人卫酒店 4.6 /hotel/427497.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_8 朝阳区潘家园南里19号,潘家园路西口近二环路。 ( 劲松、潘家园地区)
83 419961 北京饭店诺金 4.6 /hotel/419961.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_9 东城区东长安街33号,近王府井大街。 ( 天安门、王府井地区)
84 431874 北京康莱德酒店 4.6 /hotel/431874.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_10 朝阳区东三环北路29号,近呼家楼。 ( 燕莎、三里屯商业区)
85 1286148 北京长安街天府尊雅酒店 4.6 /hotel/1286148.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_11 朝阳区建国门南大街2号,近建外大街。 ( 北京站、建国门地区国贸地区)
86 430210 北京北辰洲际酒店 4.6 /hotel/430210.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_12 朝阳区北辰西路8号院4号楼,近亚运村鸟巢。 ( 亚运村、奥体中心地区)
87 430270 北京中关村皇冠假日酒店 4.6 /hotel/430270.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_13 海淀区知春路106号,近中关村大街。 ( 中关村、五道口)
88 431373 湖南大厦 4.6 /hotel/431373.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_14 东城区北京站前街9号,近北京站。 ( 北京站、建国门地区)
89 997715 北京粤财JW万豪酒店 4.6 /hotel/997715.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_15 西城区宣武门外大街18号,近2号线宣武门站。 ( 西单、金融街地区)
90 1171705 北京金茂万丽酒店 4.6 /hotel/1171705.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_16 东城区王府井大街57号,近地铁5、6号线东四站。 ( 天安门、王府井地区)
91 11064228 北京一瓢客栈 4.8 /hotel/11064228.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_17 门头沟区潭柘寺镇紫旸山庄五区九号一瓢客栈,近潭王路。 ( 门头沟、潭柘寺、妙峰山风景区)
92 5470464 北京三里屯CHAO酒店 4.6 /hotel/5470464.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_18 朝阳区工人体育场东路4号(中国红街内100米),近工人体育场北路口。 ( 东直门、工体、雍和宫地区)
93 429047 北京雅诗阁来福士中心服务公寓 4.7 /hotel/429047.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_19 东城区东直门南大街1-2号,近东直门内大街。 ( 东直门、工体、雍和宫地区)
94 447622 北京益田影人花园酒店 4.6 /hotel/447622.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_20 怀柔区杨宋镇怀耿路122号(中影基地东侧),近杨雁路、雁栖湖景区。 ( 怀柔风景区)
95 426782 北京星河湾酒店 4.6 /hotel/426782.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_21 朝阳区四季星河路六号,近朝阳大悦城,毗邻地铁六号线青年路站B出口。 ( 国贸地区)
96 6410223 北京赛特饭店 4.6 /hotel/6410223.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_22 朝阳区建国门外大街22号,赛特购物中心旁。 ( 北京站、建国门地区国贸地区)
97 1216806 北京汇园酒店公寓(贵宾楼) 4.6 /hotel/1216806.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_23 朝阳区安定门外北辰东路8号,北京国际会议中心北侧。 ( 亚运村、奥体中心地区)
98 533005 北京和园景逸大酒店 4.6 /hotel/533005.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_24 顺义区后沙峪镇边河路57号院二区,京承高速出京方向火沙路出口,新国展天北路。 ( 顺义温泉休闲区首都机场、新国展地区)
99 429206 北京瑜舍 4.6 /hotel/429206.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_25 朝阳区三里屯路11号院1号楼,近地铁团结湖站。 ( 东直门、工体、雍和宫地区燕莎、三里屯商业区)
100 457205 北京东升凯莱酒店 4.6 /hotel/457205.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_1 海淀区西小口路66号中关村东升科技园C-6。 ( 上地产业园、西三旗)
101 895549 北京龙城温德姆酒店(原龙城丽宫国际酒店) 4.6 /hotel/895549.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_2 昌平区昌平路317号,近北清路。 ( 小汤山温泉度假区上地产业园、西三旗)
102 5293705 北京龙熙维景国际会议中心 4.6 /hotel/5293705.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_3 大兴区隆华大街55号院7号楼,近庞各庄出口。 ( 大兴农业生态观光区)
103 427006 北京海航大厦万豪酒店 4.6 /hotel/427006.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_4 朝阳区霄云路甲26号,近鹏润大厦。 ( 燕莎、三里屯商业区)
104 374773 北京雅诗阁服务公寓 4.6 /hotel/374773.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_5 朝阳区建国路乙108号,近招商局。 ( 国贸地区)
105 431639 北京饭店 4.5 /hotel/431639.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_6 东城区东长安街33号,近王府井大街。 ( 天安门、王府井地区)
106 426840 北京紫檀万豪行政公寓 4.6 /hotel/426840.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_7 朝阳区建国路23号,近中国紫檀博物馆。 ( 国贸地区)
107 374783 北京唐拉雅秀酒店 4.5 /hotel/374783.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_8 西城区西长安街复兴门外大街19号,近长安商场。 ( 西单、金融街地区)
108 440888 北京西苑饭店 4.5 /hotel/440888.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_9 海淀区三里河路1号,近北京首都体育馆和北京动物园。 ( 西直门及北京展览馆地区)
109 427870 北京国际饭店 4.5 /hotel/427870.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_10 东城区建国门内大街9号,北京火车站正对面。 ( 北京站、建国门地区)
110 436911 北京颐和安缦酒店 4.6 /hotel/436911.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_11 海淀区颐和园宫门前街1号,近颐和园路。 ( 中关村、五道口香山、八大处风景区)
111 19453785 北京望京凯悦酒店 4.6 /hotel/19453785.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_12 朝阳区广顺南大街8号院2号楼(利星行中心),近利星行中心、步行10分钟可达望京SOHO。 ( 望京、酒仙桥、798地区)
112 434120 北京辽宁大厦 4.5 /hotel/434120.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_13 海淀区北四环西路甲2号,近北四环西路。 ( 中关村、五道口)
113 375096 北京北辰五洲皇冠国际酒店 4.5 /hotel/375096.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_14 朝阳区北四环中路8号,亚运村北京国际会议中心东侧。 ( 亚运村、奥体中心地区)
114 431632 北京国宾酒店 4.5 /hotel/431632.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_15 西城区阜成门外大街甲9号,近阜外心血管病医院。 ( 西直门及北京展览馆地区)
115 375098 北京中航泊悦酒店 4.5 /hotel/375098.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_16 朝阳区霄云路36号,京信大厦附近。 ( 燕莎、三里屯商业区)
116 21132087 北京乐多港万豪酒店 4.6 /hotel/21132087.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_17 昌平区城南街道南口路29号。 ( 十三陵水库、居庸关长城风景区小汤山温泉度假区)
117 430004 北京富力万达嘉华酒店 4.5 /hotel/430004.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_18 石景山区石景山路甲18号1号楼,近石景山路。 ( 公主坟、五棵松、石景山游乐园地区)
118 452197 北京丽景湾国际酒店 4.5 /hotel/452197.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_19 朝阳区东四环十里堡北里28号,近朝阳北路农民日报社往南。 ( 国贸地区燕莎、三里屯商业区)
119 1085773 北京东方美爵酒店 4.5 /hotel/1085773.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_20 东城区交道口东大街101号,近安内大街。 ( 东直门、工体、雍和宫地区)
120 419993 北京华侨大厦 4.5 /hotel/419993.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_21 东城区王府井大街2号,近世都百货。 ( 天安门、王府井地区)
121 918302 北京钓鱼台大酒店 4.6 /hotel/918302.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_22 海淀区三里河路49号,近月坛南街。 ( 公主坟、五棵松、石景山游乐园地区西单、金融街地区)
122 429111 北京名人国际大酒店 4.5 /hotel/429111.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_23 朝阳区安立路99号,北辰购物中心西北侧。 ( 亚运村、奥体中心地区)
123 427874 北京好苑建国酒店 4.5 /hotel/427874.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_24 东城区建国门内大街17号,近长安街北侧华夏银行。 ( 北京站、建国门地区)
124 347312 北京燕莎中心凯宾斯基饭店 4.5 /hotel/347312.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_25 朝阳区亮马桥路50号,近燕莎友谊商城三元桥东北方向。 ( 燕莎、三里屯商业区)
125 430601 北京海淀永泰福朋喜来登酒店 4.5 /hotel/430601.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_1 海淀区远大路25号1座,近世纪金源购物中心。 ( 中关村、五道口)
126 1373748 北京万世名流酒店 4.5 /hotel/1373748.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_2 朝阳区北苑东路顾家庄桥北300米北苑中街,北苑东路以西。 ( 亚运村、奥体中心地区)
127 482816 北京昆泰酒店 4.5 /hotel/482816.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_3 朝阳区望京启阳路2号,临近地铁15号线,望京东站,B东北口出,大约500米,步行约5分钟。 ( 望京、酒仙桥、798地区)
128 396425 北京亚洲大酒店 4.5 /hotel/396425.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_4 东城区工体北路新中西街8号,近工人体育馆。 ( 东直门、工体、雍和宫地区)
129 430008 北京兴基铂尔曼饭店 4.5 /hotel/430008.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_5 大兴区经济技术开发区荣华南路12号,近京东总部。 ( 亦庄地区)
130 436066 北京瑞麟湾温泉度假酒店 4.5 /hotel/436066.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_6 顺义区南彩镇顺平辅路39号,近南彩汽车总站。 ( 顺义温泉休闲区)
131 374775 北京璞邸酒店 4.5 /hotel/374775.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_7 东城区建国门南大街7号,近北京古观象台。 ( 北京站、建国门地区天安门、王府井地区)
132 468844 北京大成路九号 4.5 /hotel/468844.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_8 丰台区郑常庄大成路九号,近北京301医院及302医院。 ( 公主坟、五棵松、石景山游乐园地区总部基地、丰台体育中心、南宫地区)
133 1049363 北京龙湾国际露营公园 4.5 /hotel/1049363.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_9 延庆区旧县镇东龙湾村南200米,百里画廊龙庆峡、木质别墅房车、烧烤聊天逗狗,素有“北京后花园”美誉。 ( 延庆休闲度假区)
134 454991 北京锦江富园大酒店 4.5 /hotel/454991.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_10 大兴区经济技术开发区荣华中路11号,近天华南街。 ( 亦庄地区)
135 457701 北京丽维赛德酒店 4.5 /hotel/457701.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_11 丰台区射击场路15号,第九届中国(北京)国际园林博览会主展馆。 ( 总部基地、丰台体育中心、南宫地区)
136 430250 北京海淀雅乐轩酒店 4.5 /hotel/430250.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_12 海淀区远大路25号B座,近世纪金源商城。 ( 中关村、五道口)
137 3663441 北京新华联丽景温泉酒店 4.5 /hotel/3663441.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_13 顺义区李遂镇宣庄户中街111号,近501乡道与李魏路交叉口。 ( 顺义温泉休闲区)
138 428586 北京新世纪日航饭店 4.4 /hotel/428586.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_14 海淀区首体南路6号,北京首都体育馆对面。 ( 西直门及北京展览馆地区)
139 347310 北京长城饭店(原喜来登长城饭店) 4.4 /hotel/347310.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_15 朝阳区东三环北路10号,近燕莎商城。 ( 燕莎、三里屯商业区国贸地区)
140 369745 北京希尔顿逸林酒店 4.4 /hotel/369745.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_16 西城区广安门外大街168号,近广安门华联商厦、地铁7号线达官营站(C出口)。 ( 北京西站、丽泽商务区)
141 431617 北京长白山国际酒店 4.4 /hotel/431617.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_17 朝阳区亚运村安苑北里25号,近奥林匹克体育中心。 ( 亚运村、奥体中心地区望京、酒仙桥、798地区)
142 385119 北京国际艺苑皇冠假日酒店 4.4 /hotel/385119.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_18 东城区王府井大街48号,近世都百货东侧。 ( 天安门、王府井地区)
143 347414 北京希尔顿酒店 4.4 /hotel/347414.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_19 朝阳区东三环北路东方路1号,燕莎桥/三元桥交界。 ( 燕莎、三里屯商业区)
144 17906234 北京大红门国际会展中心 4.6 /hotel/17906234.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_20 丰台区南苑路138号。 ( 永定门、南站、大红门、南苑地区)
145 431634 北京文津国际酒店 4.4 /hotel/431634.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_21 海淀区中关村东路一号院5号楼(清华大学南门外),近成府路。 ( 中关村、五道口)
146 445313 北京西国贸大酒店 4.4 /hotel/445313.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_22 丰台区丰管路16号8号楼,丰益桥西。 ( 北京西站、丽泽商务区总部基地、丰台体育中心、南宫地区)
147 1273120 北京君颐润华酒店 4.4 /hotel/1273120.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_23 丰台区丰管路20号院,丰管路与南三环辅路交叉路口。 ( 北京西站、丽泽商务区总部基地、丰台体育中心、南宫地区)
148 669249 北京京广中心酒店公寓 4.4 /hotel/669249.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_24 朝阳区朝阳门外大街1号京广中心呼家楼,京广桥西侧。 ( 国贸地区)
149 456474 北京在之禾度假酒店 4.4 /hotel/456474.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_25 朝阳区紫玉东路1号,安立路与科荟路交叉路口东侧。 ( 亚运村、奥体中心地区)
150 848787 北京前门皇家驿栈 4.4 /hotel/848787.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_1 东城区前门商业区鲜鱼口街87号,与北晓顺胡同交汇。 ( 前门、崇文门商贸区)
151 431897 北京涵珍园国际酒店 4.4 /hotel/431897.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_2 东城区交道口南大街秦老胡同20号,近地铁6号线、8号线南锣鼓巷站及中央戏剧学院站。 ( 后海、南锣鼓巷地区)
152 427292 长安大饭店(陕西大厦) 4.3 /hotel/427292.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_3 朝阳区华威里27号,近潘家园古玩城南门。 ( 劲松、潘家园地区)
153 439311 北京渔阳饭店 4.3 /hotel/439311.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_4 朝阳区新源西里中街18号,近韩国、德国大使馆。 ( 东直门、工体、雍和宫地区燕莎、三里屯商业区)
154 432789 北京九华山庄贵宾楼大酒店 4.3 /hotel/432789.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_5 昌平区小汤山马坊桥东1000米,小汤山农业科技园。 ( 小汤山温泉度假区)
155 21825729 北京枫烨园酒店 4.9 /hotel/21825729.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_6 海淀区清河路135号。 ( 亚运村、奥体中心地区)
156 429520 北京京瑞温泉国际酒店 4.2 /hotel/429520.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_7 朝阳区东三环南路17号,近东南三环华威桥。 ( 劲松、潘家园地区)
157 427664 北京奥克伍德华庭酒店公寓 4.4 /hotel/427664.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_8 朝阳区东直门外斜街8号,近新源里东街。 ( 东直门、工体、雍和宫地区)
158 742641 北京瑞海姆田园度假村 4.2 /hotel/742641.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_9 密云区西大桥路2号,近密云县法院。 ( 密云风景区)
159 1960270 北京海德温泉酒店 4.2 /hotel/1960270.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_10 朝阳区青年路西里1号,近姚家园路。 ( 国贸地区)
160 436059 北京南宫温泉度假酒店 4.1 /hotel/436059.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_11 丰台区王佐镇福宫路39号,王佐路口。 ( 总部基地、丰台体育中心、南宫地区)
161 427267 北京温都水城 3.9 /hotel/427267.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_12 昌平区七家镇宏福创业园,近中国移动。 ( 小汤山温泉度假区)
162 21793989 北京精品别墅 4.6 /hotel/21793989.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_13 怀柔区雁栖湖西路2号院14号楼,雁栖湖雁栖岛、红螺寺、青龙峡、凯宾斯基集团。 ( 怀柔风景区)
163 4495986 北京华彬庄园绿色休闲健身俱乐部 4.0 /hotel/4495986.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_14 昌平区南口华彬庄园,近水南路。 ( 十三陵水库、居庸关长城风景区)
164 11214450 北京欢聚party独栋别墅 0.0 /hotel/11214450.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_15 大兴区京开高速庞各庄出口南1000米龙熙温泉旁富力丹麦小镇,马北路。 ( 大兴农业生态观光区)
165 8512088 北京嘉华home party独栋别墅(G4501(北京六环高速)分店) 0.0 /hotel/8512088.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_16 昌平区林溪别墅社区,近沙河。 ( 小汤山温泉度假区)
166 28704027 北京璞瑄酒店 0.0 /hotel/28704027.html?isFull=F#ctm_ref=hod_sr_map_dl_txt_17 东城区王府井大街1号。 ( 天安门、王府井地区)
167 1047921 古北水镇大酒店 4.7 /hotel/1047921.html?isFull=T#ctm_ref=hod_sr_map_dl_txt_18 密云区古北口镇司马台村,近古北水镇售票处。 ( 密云风景区)
168 17542298 古北水镇函谷山庄精品酒店 4.7 /hotel/17542298.html?isFull=T#ctm_ref=hod_sr_map_dl_txt_19 密云区司马台村古北水镇风景区内16号,古北水镇景区内。 ( 密云风景区)
169 428559 北京九华山庄 4.1 /hotel/428559.html?isFull=T#ctm_ref=hod_sr_map_dl_txt_20 昌平区小汤山沙顺路75号九华山庄(客房部前台办理入住),近大柳树环岛。 ( 小汤山温泉度假区)
170 8499212 北京华尔道夫胡同四合院 4.7 /hotel/8499212.html?isFull=T#ctm_ref=hod_sr_map_dl_txt_21 东城区西堂子胡同17-19号,近王府井商业区。 ( 天安门、王府井地区)
171 25690248 北京佳兆业铂域行政公寓 4.6 /hotel/25690248.html?isFull=T#ctm_ref=hod_sr_map_dl_txt_22
2. 输入要查询的酒店索引。
1)若查询“北京朝林松源酒店”,输入其在第1步中显示的序号0,显示结果:
2)若查询“北京瑜舍”,输入其在第1步中显示的序号99,显示结果:
3. 超出查询范围输入反馈结果:
2.1 If you find to search the detail hotel information, please input the hotel index in the DataFrame.
2.2 If you want to quit, input 'q'.
Please input the Parameter:
200
Hotel Index out of range!
Remember: 0 <= Hotel Index <= 170
Please input again.
4. 退出循环结果显示:
2.1 If you find to search the detail hotel information, please input the hotel index in the DataFrame.
2.2 If you want to quit, input 'q'.
Please input the Parameter:
q
See you later!Process finished with exit code 0
5. 总结
- 本篇文章在上一篇文章的基础上,实现了对北京五星级酒店详细信息的爬取展示;
- Python3 爬取携程网[1] 和这篇文章主要是为了锻炼获取数据的能力,为下一步进行数据预处理、数据分析等工作提供原始数据;
- 这两篇文章的完整代码存放于我的Github中,有需要的朋友可以自行下载。
- 本人才疏学浅,阅读博客时有什么问题或意见可以在评论区给我留言,大家共同学习、共同进步。如果喜欢我的文章和代码,可以给我的博客点个赞,或者在Github的右上角给我点个star。谢谢大家!
Python3 爬取携程网[2]: 爬取北京五星级酒店详细信息相关推荐
- 爬取链家网站的北京租房信息
本来准备这个暑假好好复习,但学校安排暑期实践,既然学校安排这个,而且我自己也觉得需要提高一下自己的能力,所以静下心来做点事吧.我们要做到项目是分析北京地区的租房的信息分析. 我们需要做的是爬取链家网站 ...
- python 爬取_Python爬虫爬取马蜂窝北京景点信息
背景 来北京有些日子了,但是每个周末都窝在六环外的村里躺着.想想不能再这么浪费时间了,得出去玩!但是去哪玩呢?于是乎想着,先把北京的景点以及位置都保存起来,然后在分析分析做个出行计划.从哪里获取景点信 ...
- Selenium 根据输入的公司名称来爬取公司的详细信息
Selenium 根据输入的公司名称来爬取天眼查中的公司的详细信息 1.下载驱动并设置环境变量 1.1.查看你的浏览器的版本 1.2.下载对应版本的ChromeDriver驱动 1.3.设置环境变量 ...
- 使用python爬取携程网旅游信息(包含景点、酒店、美食)
其中本次爬虫的主要思想是:首先是找到携程网url的编写规律,然后根据规律使用beautifulsoup4对所需的html语言中的信息提取,最后就是封装处理.爬取的信息只是用来本次毕设的研究非商业用途. ...
- Python网络爬虫实战:爬取携程网酒店评价信息
这个爬虫是在一个小老弟的委托之下写的. 他需要爬取携程网上的酒店的评价数据,来做一些分词和统计方面的分析,然后来找我帮忙. 爬这个网站的时候也遇到了一些有意思的小麻烦,正好整理一下拿出来跟大家分享一下 ...
- python爬取贝壳找房之北京二手房源信息
所用库 requests xpath解析库 multiprocessing多进程 pandas库用于保存csv文件 实战背景 本文首发于:python爬取贝壳找房之北京二手房源信息 主要是为了做北京二 ...
- Python爬取北京地区短租房信息
本文利用Requests和BeautifulSoup第三方库,爬取小猪短租网北京地区短租房的信息.代码参考<从零开始学Python网络爬虫>. 完整代码如下: from bs4 impor ...
- python3.6爬虫案例:爬取朝秀帮图片
一.写在前面 之前写的两篇博客: python3.6爬虫案例:爬取百度歌单点击打开链接: python3.6爬虫案例:爬取顶点小说(爱看小说同学的福利)点击打开链接 第一个案例写了如何在百度音乐歌单中 ...
- 多线程爬取携程网酒店数据,星级数据和经纬度
下面展示一些 内联代码片. 多线程爬取携程网酒店星级数据和经纬度 CITY_CODE={7551:"商洛",7587:"吴忠市",3222:"平顶山市 ...
最新文章
- confluence 常见问题处理
- Js里面IF(var)表示什么意思?js中if的写法、含义
- 语法之知识点的改进(Func/Action)
- 读书 | IT人如何直击本质洞察底层逻辑?
- nginx反向代理打印日志_nginx启用TCP反向代理日志配置
- iOS开发UI篇—推荐两个好用的Xcode插件(提供下载链接)
- vue echarts div变化_数据可视化之echarts在Vue中的使用
- Git操作的基本命令
- 虹科方案 | 全天候监控维护射频网络稳定运行,你不知道的新方案
- 青出于蓝而胜于蓝 — Vue.js对Angular.js的那些进步
- postgresql12的同步流复制搭建及主库hang问题处理和分析
- 关于uIP的移植以及部分特性解析和勘误
- 名编辑电子杂志大师教程 | 如何调用外部本地文件?
- 自制密码生成器1.0
- 船务术语简缩语(zt)
- 各类暴力事件频发,究竟是为何?
- “骚气”的开源壁纸项目
- NVL函数,NVL2函数的使用,查询日期天数
- 绝密!!!!!明星的身份证照片!!!!
- 帽子接球小游戏(一)--制作UI面板