前言
我们采用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

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

被折叠的 条评论
为什么被折叠?



