爬虫学习——使用HTTP服务代理、redis使用、通过Scrapy实现分布式爬取

一、使用HTTP服务代理

由于网络环境、网站对用户的访问速度的限制等原因,使得爬取过程会出现IP被封禁,故使用代理可提高爬取速度。 在Scrapy中提供了一个HttpProxyMiddleware 专门用于进行爬虫代理设置。在使用该代理进行爬取操作时,需要先在bash中设置好系统环境变量,然后使用该代理设置自动默认获取*****_proxy的路径作为代理路径此外,还可以实现使用多个代理。

二、redis使用

在Ubuntu中使用apt-get对redis进行安装。

其安装指令为:sudo apt-get install redis-server

其开启/重启、停止服务器指令为:sudo service redis-server start/restart/start

redis默认在127.0.0.1:6379上开启服务,可以使用netstat -ntl命令进行查询。如果想让其他的计算机被监听和访问,可以在redis配置文件/etc/redis/redis.conf中对监听地址进行修改和扩展,使用redis-cli-h IP地址 -p 端口号,来链接服务器;查看链接数据库是否成功使用PING,若返回PONG,则说明连接成功。相关redis的官方文档为: Redis - The Real-time Data Platform
redis支持五种Key类型:字符串、列表、字典,有序字典、哈希。此外,除了在ubuntu中可以使用redis,在python中也可使用redis,使用sudo pip install redis即可,然后import redis导入使用即可。

三、通过Scrapy实现分布式爬取

使用scrapy-redis实现分布式爬取,分布式的本质就是"人多力量大",首先找到可以使用的多个LINIX主机并获取各主机的IP地址,然后在各个主机中安装scrapy和scrapy-redis

安装指令为:pip install scarpy;pip install scrapy-redis,从多个主机中选择一个作为供所有爬虫使用的redis数据库,并在该主机上安装redis-server;然后在redis配置文件(/etc/redis/redis.conf)中修改服务器的地址,确保该数据库能被所有的爬虫进行访问;然后重启redis服务器即可。然后测试多个主机能否访问设定为redis数据库的主机(redis-cli -h IP地址 ping,返回为PONG则说明连接成功)

相关推荐
冷小鱼8 小时前
Valkey 深度剖析:Redis 最佳平替的技术全景
数据库·redis·缓存·valkey
星筏8 小时前
深入理解分布式锁:ZooKeeper vs Redis
redis·分布式·zookeeper
Knight_AL9 小时前
从 0 到 1:PG WAL → Debezium → Kafka → Spring Boot → Redis
spring boot·redis·kafka
冷小鱼9 小时前
Redis 技术全景解析:从缓存基石到 AI 时代的数据引擎
数据库·redis·缓存
iwS2o90XT9 小时前
仿写一个简化版Redis,理解内存数据库
数据库·redis·缓存
无籽西瓜a9 小时前
【西瓜带你学Kafka | 第六期】Kafka 生产确认、消费 API 与分区分配策略(文含图解)
java·分布式·后端·kafka·消息队列·mq
苏渡苇9 小时前
Redis 核心数据结构(三)——Hash,把一堆字段塞进一个 Key
数据结构·redis·redis hash·redis hset
紧固视界9 小时前
分布式光伏系统中紧固件选型与应用解析_2026上海紧固件专业展
分布式·上海紧固件展·紧固件展·上海紧固件专业展
Maiko Star9 小时前
Spring AI 多轮对话记忆(ChatMemory)保姆级教程:从内存版到 Redis 持久化
java·redis·spring
Thanks_ks9 小时前
穿透海量数据的迷雾:深入理解布隆过滤器的架构哲学与工程权衡
redis·高并发·缓存穿透·架构设计·布隆过滤器·分布式系统·海量数据