美团爬虫-商铺信息抓取2
我们接着上一篇继续分析,数据来源确认好了,参数构造分析后,创建scrapy项目
这里采用手机浏览器中api的构造方式抓取
接着上一篇讲的,需要细化区域,那么就需要拿到该区域的areaId
在请求中我们并没有看到有额外的XHR负责区域id数据的传输,那么就说明该数据在源码中,我们通过定位查找,可以发现地区id值是通过js进行选取的
将areaId以字典areaList的形式存储,并重新构造start_requests,遍历areaList进行请求
下面就是构造参数做post请求
解析response,从获得的json数据中取出需要的
翻页再请求
深度再爬取商铺地址,营业时间,电话等信息
https://meishi.meituan.com/i/poi/poiid?ct_poi=ctPoi 通过post得到的两个参数,可以拼接得到该商店的详细访问页面,进而获得更多信息,比如地址,营业时间,电话等,同样在js中可以找到,可以采用正则匹配的方式提取需要的信息
当然若需要存储还需提前将item和pipelines写好,并在解析后yield item,使各商铺信息item在pipelines中进行筛选和存储处理,还可以扩展,比如所有地市的美食,美食推荐,评论的抓取等~
其中需要注意的是请求需要带cookie值,在middlewares中我们可以新建一个cookie处理类,使得每次请求都带上cookie
必要时可以在Middleware中加上ip代理,调整爬取速度等方式,避免反爬识别