目錄
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 Pattern
baseroom_pattern = re.compile(r'<[^>]+>')
for idx in range(len(rooms)):
if rooms[idx].has_attr(key='data-baseroominfo'):
room_info_str = rooms[idx]['data-baseroominfo']
## Error
# TypeError String indices must be integers
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)
print(remove_tag)
RoomDetailInfo = remove_tag.split("|")
print(RoomDetailInfo)
RoomSize.append(RoomDetailInfo[0])
RoomLevel.append(RoomDetailInfo[1])
IsSmoking.append(RoomDetailInfo[2])
BedSize.append(RoomDetailInfo[3])
CustomerNum.append(RoomDetailInfo[4])
else:
continue
3.3.3 整合爲Pandas.DataFrame對象
3.3.2 完成了對信息的提取,本部分內容將提取的列表整合爲一個矩陣,然後用Pandas.DataFrame進行展示。
# Combine the lists as an array
RoomInfo = np.array((RoomID, RoomName, LowPrice, RoomSize, RoomLevel, IsSmoking, BedSize, CustomerNum)).T
# Create a DataFrame object
df = pd.DataFrame(data=RoomInfo, columns=['RoomID', 'RoomName', 'LowPrice', 'RoomSiae', 'RoomLevel', 'IsSmoking', 'BedSize', 'CustomerNum'])
print(df)
# Result
'''
RoomID RoomName LowPrice RoomSiae RoomLevel IsSmoking BedSize CustomerNum
0 27541229 豪華大牀房 1609.0 40平方米 3-8層 不可吸菸 1張2米雙人牀 2人
1 27541231 豪華雙牀房 1609.0 40平方米 3-8層 不可吸菸 2張1.35米單人牀 不可加牀
2 27541233 豪華商務套房 3429.0 80平方米 3-5層 不可吸菸 1張2米雙人牀 2人
3 33300631 豪華商務大牀房 1839.0 46平方米 3、5-8層 不可吸菸 1張2米雙人牀 2人
4 33300678 奢華特色套房 5459.0 80平方米 3、5層 不可吸菸 1張2米雙人牀 2人
5 37303662 高級大牀房 1062.0 35平方米 3-10層 不可吸菸 1張2米雙人牀 不可加牀
6 79467148 豪華公寓套房 3856.0 80平方米 9層 不可吸菸 1張2米特大牀 2人
7 79467149 至尊公寓套房 6438.0 80平方米 11層 不可吸菸 1張2米特大牀 2人
'''
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 re
pd.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 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 = []
IsSmoking = []
BedSize = []
CustomerNum = []
# Regex Pattern
baseroom_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("|")
RoomSize.append(RoomDetailInfo[0])
RoomLevel.append(RoomDetailInfo[1])
IsSmoking.append(RoomDetailInfo[2])
BedSize.append(RoomDetailInfo[3])
CustomerNum.append(RoomDetailInfo[4])
else:
continue
RoomInfo = np.array((RoomID, RoomName, LowPrice, RoomSize, RoomLevel, IsSmoking, BedSize, CustomerNum)).T
# print(RoomInfo)
df = pd.DataFrame(data=RoomInfo,
columns=['RoomID', 'RoomName', 'LowPrice', 'RoomSiae', 'RoomLevel', 'IsSmoking', 'BedSize',
'CustomerNum'])
print(df)
if __name__ == "__main__":
# Scrap the detailed hotel information
df = 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.')
continue
elif input_param == 'q':
print('See you later!')
break
else:
print('Invalid Input!')
print('\n')
continue
4.2 運行結果展示
- 讀取保存的csv文件,並用Pandas.DataFrame進行展示。這部分結果如下:
1. Beijing 5 Star Hotel Lists
id 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 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:
0
3. The detail information of the Hotel:
RoomID RoomName LowPrice RoomSiae RoomLevel IsSmoking BedSize CustomerNum
0 27541229 豪華大牀房 1609.0 40平方米 3-8層 不可吸菸 1張2米雙人牀 2人
1 27541231 豪華雙牀房 1609.0 40平方米 3-8層 不可吸菸 2張1.35米單人牀 不可加牀
2 27541233 豪華商務套房 3429.0 80平方米 3-5層 不可吸菸 1張2米雙人牀 2人
3 33300631 豪華商務大牀房 1839.0 46平方米 3、5-8層 不可吸菸 1張2米雙人牀 2人
4 33300678 奢華特色套房 5459.0 80平方米 3、5層 不可吸菸 1張2米雙人牀 2人
5 37303662 高級大牀房 1062.0 35平方米 3-10層 不可吸菸 1張2米雙人牀 不可加牀
6 79467148 豪華公寓套房 3856.0 80平方米 9層 不可吸菸 1張2米特大牀 2人
7 79467149 至尊公寓套房 6438.0 80平方米 11層 不可吸菸 1張2米特大牀 2人
2)若查詢“北京華爾道夫衚衕四合院酒店”,輸入其在第1步中顯示的序號170,顯示結果:
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:
170
3. The detail information of the Hotel:
RoomID RoomName LowPrice RoomSiae RoomLevel IsSmoking BedSize CustomerNum
0 42230406 四合院套房 6565.0 100平方米 1層 不可吸菸 1張2米特大牀 2人
1 42230409 四合院雙臥套房 7730.0 121平方米 2層 不可吸菸 1張1.2米上下鋪 和 1張2米特大牀 4人
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。謝謝大家!