基于Python爬虫实现爬取酒店信息

  介绍

今天就跟大家聊聊有关基于Python爬虫实现爬取美团酒店信息,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

<强>一、分析网页

网站的页面是JavaScript渲染而成的,我们所看到的内容都是网页加载后又执行了JavaScript代码之后才呈现出来的,因此这些数据并不存在于原始HTML代码中,而请求仅仅抓取的是原始HTML代码。抓取这种类型网站的页面数据,解决方案如下:

分析Ajax,很多数据可能是经过Ajax请求时候获取的,所以可以分析其接口。

基于Python爬虫实现爬取酒店信息

在XHR里可以找到,请求URL有几个关键参数,uuid和cityId是城市标识,抵消偏移量可以控制翻页,分析网页发现,第x页的偏移量为:(x - 1) * 20,限制表示每页有20条信息,startDay和endDay为当前的日期。

基于Python爬虫实现爬取酒店信息

在预览里可以找到每页的20条信息

基于Python爬虫实现爬取酒店信息

模拟JavaScript渲染过程,直接抓取渲染后的结果。

硒和pyppeteer爬虫就是用的这种方法

<强>二,爬取酒店信息

logging.basicConfig(=日志级别。信息,格式=& # 39;% (asctime) s - % (levelname)年代:% & # 39;(消息))   url=癶ttps://ihotel.meituan.com/hbsearch/HotelSearch"   头={   “User-Agent":“Mozilla/5.0 (Windows NT 10.0;WOW64) AppleWebKit/537.36 (KHTML,像壁虎)Chrome/80.0.3987.162 Safari 537.36“,   “Referer":“https://hotel.meituan.com/chengdu"   }   世行=openpyxl.Workbook ()   表=wb.active   sheet.append([& # 39;酒店名称& # 39;,& # 39;酒店地址& # 39;,& # 39;酒店类型& # 39;,& # 39;最低价& # 39;,& # 39;评价& # 39;,& # 39;评论数& # 39;,& # 39;经度& # 39;,& # 39;纬度& # 39;])         def hotel_data (x):   data=https://www.yisu.com/zixun/{   “utm_medium”:“电脑”,   “version_name”: 999.9,   “cateId”: 20,   “attr_28”: 129年,   “uuid”:“5 d4e443ec83ddd49b73f317921eae16c7b492a634a67fa261773890f730a5932@1600263777783”,   “cityId”: 59岁   “抵消”:x * 20,   “限制”:20,   “startDay”: 20200916,   “endDay”: 20200916,   问:”,“排序”:“违约”,   “X-FOR-WITH”:“47 zbbav + k1e7QrnKt4lEVXrmtOE9w2OpFfGsKf539CDdXIw4r2V/qICcWVeNACGHWNbD6iL4huPyRVdkNJJwR6dqcoQMyzjUE3cQGWr6YZOwANQOlCSrZ7m1 + aahwcnh/dTfaJLMZfxWaJQEISBuKbiMgDC8Vr4eaeWiYASkLl0ByB96MOUz7gfjUTbhlV0ZXvZ ucwNcK3zxTQjmoBINsAY4HwpKQLpOV2IqV1CtPg=',   }   res=请求。get (url,标题=头,params=数据)   time . sleep(随机的。randint (1、3))   结果=json.loads (res.text)(“数据”)(“searchresult”)   反对的结果:   name=反对['名字']#酒店名称   addr=反对(“addr”) #酒店地址   明星=反对[' hotelStar '] #酒店类型   价格=反对[' lowestPrice '] #最低的价   scoreIntro=反对[' scoreIntro '] #评价   评论=反对[' commentsCountDesc '] #评论数   液化天然气,lat=反对“液化天然气”,反对(“纬度”)#经纬度   data=(名称、addr明星,价格,scoreIntro,评论,液化天然气,lat)   sheet.append(数据)   logging.info(数据)

程序运行成功,酒店信息保存到了Excel。

基于Python爬虫实现爬取酒店信息

看完上述内容,你们对基于Python爬虫实现爬取美团酒店信息有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

基于Python爬虫实现爬取酒店信息