scrapy获取数据的一些问题与解决

本文分享了使用Scrapy爬虫框架抓取游戏数据的实战经验,包括业务逻辑编写、集群部署、IP代理集成及反爬机制应对策略。详细介绍了三种代理服务的使用与对比,并探讨了常见反爬逻辑及解决方案。

前言

我们采用scrapy 爬取了一些游戏数据,这里对遇到的一些技术问题 的解决情况

项目情况

爬虫的逻辑是比较简单的,有一个进程从 任务队列中 拿到 相应的任务(一般是url),去请求,拿到html/json/…后 进行解析,解析完后自己选择做什么,比如:1,把解析后的数据存起来,2,解析后发现有想用的url,重新把这些个url当作一个任务扔到 任务队列中.

我们的爬虫任务有挺多的,如 游戏的id列表,单个游戏的详情, 游戏的价格,游戏的在线人数,游戏的评论,其它平台的游戏信息 等等.

关于在scrapy中写业务逻辑

scrapy是一个爬虫框架,https://scrapy.org/

它做了很多事情,
一个最简单的逻辑,我们在官网也能看到,只要写一段spider即可,spider主要通过对response.text(返回的html/json等)解析,然后选择是yeild一个新的请求。
在上面的逻辑中,scrapy的动作说明:

1,我们自定义一个start_urls在配置上,至于怎么去请求 ,scrapy自己处理,
2,scrapy请求完后会回调我们的spider逻辑
3,如果发现在yield request,则其会把这个request扔到 任务队列,
4,如果发现yield的是item,则会调用Item的逻辑,同时会走pipeline
5, 有一个 任务队列的轮寻, 拿到其任务然后去请求然后根据任务队列中保存的回调函数去调用.

上面逻辑的一些说明:
(1),第3点中 item是scrapy的一个概念,一般可以理解为按照其格式定义的一个类,用来存解析后的数据,pipeline则是自定义的Item处理类,常常用来如把item扔到队列或其它的工作

scrapy集群的加入?

scrapy 集群的逻辑,主要是 把任务队列 扔到redis之类的 外围 存储,然后取的时候 各scra

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值