yelp纽约地区数据爬取。使用feapder爬虫框架

本文使用了国内作者的一款feapder轻量级开源爬虫框架。进行yelp站点数据抓取。

第一部分为根据开放api获取店铺信息。

第二部分为根据商店id抓取评论信息。

1.抓包过程

1.抓取商店信息。
通过翻页定位到url
https://www.yelp.com/search/snippet?find_desc=&find_loc=New%20York%2C%20NY&ns=1&start=10&parent_request_id=5fd32b6ecfc91273&request_origin=user
查看参数。修改ns 翻页。在此不推荐这种方法。能找到的数据比较少。大概只有二十多页。二百多个!
推荐使用yelp开放api。网址https://www.yelp.com/developers/v3/manage_app。

2.抓取评论信息。
这一点在开放api中做的并不友好。所以我先择了通过代理ip的方式直接上网站抓。

2.调试代码

1.抓取商店信息。商店id的代码

3.基于框架编写代码

1.抓取商店信息的代码。代码基于feapder框架。
params 参数请参考yelp API文档。yelp开放API文档
feapder 框架文档https://boris-code.gitee.io/feapder/#/
https://www.yelp.com/developers/documentation/v3
self.headers[‘Authorization’] = {APIkey}
这里的latitude 和longitude 是经纬度。通过经纬度画一个四边形

    def start_requests(self):
        for i in range(100):
            latitude = 40.641 + i / 500
            for k in range(50):
                longitude = -74.017 + k / 250
                params = {
   
                    'radius': '2500',
                    'term': self.term,
                    'limit': '50',
                    'latitude': latitude,
                    'longitude': longitude,
                }
                self.headers['Authorization'] = self.getAuth()
                yield feapder.Request(url=self.url, params=params, headers=self.headers)

解析函数

    def parse(self, request, response):
        data = response.json.get('businesses')
        if data == []:
            return None
        for i in data:
            item = SpiderDataItem()
            item.table_name = 'apiapp_shop_info'
            item.term = self.term
            item.store_id = i.get('id')
            item.alias = i.get('alias')
            item.name = i.get('name')
            item.image_url = i.get('image_url')
            item.is_closed = i.get('is_closed')
            item.url = i.get('url')
            item.rating = i.get('rating')
            item.coordinates = i.get('coordinates')
            item.transactions = i.get('transactions')
            item.location = i
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值