最近入坑爬虫,在摸索使用scrapy框架爬取美团网站的数据
第一步,准备从地区信息开始爬,打开美团官网,点击切换地区,按F12,点击XHR,XHR会过滤出来异步请求,这样我们就看大了美团的地区信息的json数据,复制该链接http://www.meituan.com/ptapi/getprovincecityinfo/
解析该json数据,会获取到部分的地区以及区县的信息,但这样不利于后面的爬取,会重复爬取。我是通过过滤出来市一级的信息,然后利用页面的中区域分类信息进行爬取。
将获取到的数据保存到MongoDB数据库
先保存省然后是市然后区县然后是街道,然后根据街道的url爬取数据
这是获取省份以及市的代码
观察获取到的json数据后发现前面均为市一级的信息,所以通过每个省有多少个市来建立配置文件,通过配置文件来获取。
在通过读取配置文件的方式,过滤掉区县,留下市一级的所有信息
读取配置使用configparser模块。保存到数据库
scrapy框架遵守robot.txt规则,所以会被拒绝访问,在setting中设置
ROBOTSTXT_OBEY = False
同事为了避免出现请求403错误,继续设置setting
'''
伪造一个用户信息,防止403
'''
USER_AGENT = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'
ITEM_PIPELINES = {
'Tencent.pipelines.TencentPipeline': 300,
}
'''
防止403崩溃。
'''
HTTPERROR_ALLOWED_CODES = [403]
下次将继续更新爬取县区以及街道的数据,数据量较大,目前还在继续爬取,准备爬取所有数据,有问题可以留言,只会提供思路,不会提供源代码
本文分享自 Python爬虫scrapy 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!