- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
美团数据怎样爬,看看这个文章吧!
点击上方“Python爬虫与数据挖掘”,进行关注
回复“书籍”即可获赠Python从入门到进阶共10本电子书
今
日
鸡
汤
欲悲闹鬼叫,我哭豺狼笑。
1.分析美团美食网页的url参数构成
1)搜索要点
美团美食,地址:北京,搜索关键词:火锅
2)爬取的url
/s/%E7%81%AB%E9%94%85/
3)说明
url会有自动编码中文功能。所以火锅二字指的就是这一串我们不生疏的代码%E7%81%AB%E9%94%85。
通过关键词城市的url构造,解析当前url中的bj=北京,/s/后面跟搜索关键词。
这样我们就可以了解到当前url的构造。
2.分析页面数据来源(F12开发者工具)
开启F12开发者工具,并且刷新当前页面:可以看到切换到其次页时候,我们的url没有变化,网站也没有自动进行刷新跳转操作。(web中ajax技术就是在保证页面不刷新,url不变化情况下进行数据加载的技术)
此时我们需要在开发者工具中,找到xhr里面对应当前数据的响应文件。
分析到这里可以得知:我们的数据是以json格式交互。分析其次页的json文件恳求地址与第三页json文件的恳求地址。
其次页:/group/v4/poi/pcsearch/1?uuid=xxxuserid=-1limit=32offset=32cateId=-1q=%E7%81%AB%E9%94%85
第三页:/group/v4/poi/pcsearch/1?uuid=xxxuserid=-1limit=32offset=64cateId=-1q=%E7%81%AB%E9%94%85
对比发觉:offse参数每次翻页添加32,并且limit参数是一次恳求的数据量,offse是数据恳求的开头元素,q是搜索关键词poi/pcsearch/1?其中的1是北京城市的id编号。
3.构造恳求抓取美团美食数据
接下来直接构造恳求,循环访问每一页的数据,最终代码如下。
import?requestsimport?redef?start():????for?w?in?range(0,?1600,?32):????#页码依据实际情况x32即可,我这里是设置50页为上限,为了避开设置页码过高或者数据过少情况,定义最大上限为1600-也就是50页,使用try-except来检测时候特别,特别跳过该页,一般作为很多据跳过该页处理????????try:????????#?留意uuid后面参数空余将uuid后xxx替换为本人的uuid参数????????????url?=?/group/v4/poi/pcsearch/1?uuid=xxxuserid=-1limit=32offset=+str(w)+cateId=-1q=%E7%81%AB%E9%94%85????????????#headers的数据可以在F12开发者工具下面的requests_headers中查看,需要实现选择如下headers信息????????????#必要情况??恳求频繁?建议添加cookie参数在headers内????????????headers?=?{????????????????Accept:?*/*,????????????????Accept-Encoding:?gzip,?deflate,?br,????????????????Accept-Language:?zh-CN,zh;q=0.9,????????????????Connection:?keep-alive,????????????????User-Agent:?Mozilla/5.0?(Windows?NT?10.0;?WOW64)?AppleWebKit/537.36?(KHTML,?like?Gecko)?Chrome/70.0.3538.25?Safari/537.36?Core/1.70.3741.400?QQBrowser/10.5.3863.400,????????????????Host:?,????????????????Origin:?,????????????????Referer:?/s/%E7%81%AB%E9%94%85/????????????}????????????response?=?requests.get(url,?headers=headers)????????????#正则猎取当前响应内容中的数据,因json方法无法针对店铺特有的title键值进行猎取没所以接受正则??????titles?=?re.findall(,title:(.*?),address:,?response.text)?????????addres
原创力文档


文档评论(0)