当前位置: 首页 > web >正文

爬虫学习——使用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则说明连接成功)

http://www.xdnf.cn/news/1680.html

相关文章:

  • MySQL SQL查询语句执行过程
  • QLExpress 深度解析:构建动态规则引擎的利器
  • 云蝠智能大模型呼叫:AI驱动的通信服务革新与实践
  • 格式工厂:多媒体转换工具
  • Red:1靶场环境部署及其渗透测试笔记(Vulnhub )
  • 路由交换网络专题 | 第七章 | BGP练习 | 次优路径 | Route-Policy | BGP认证
  • 本地缓存大杀器-Caffeine
  • HTML响应式网页设计与跨平台适配
  • vue element使用el-table时,切换tab,table表格列项发生错位问题
  • 驱动开发硬核特训 · Day 19:从字符设备出发,掌握 Linux 驱动的实战路径(含 gpio-leds 控制示例)
  • 成人高考难吗-录取线仅需120分?
  • Mysql主从复制和读写分离
  • 运维打铁:Centos 7 安装 redis_exporter 1.3.5
  • 大语言模型之提示词技巧
  • 多线程环境下的资源共享与线程安全问题
  • SpringBootTest报错
  • 更新英雄位置
  • CS144 Lab 6 实战记录:构建 IP 路由器
  • LLM量化技术全景:GPTQ、QAT、AWQ、GGUF与GGML
  • 如何在 Odoo 18 中配置自动化动作
  • 如何在 Unity 中导入 gltf /glb 文件
  • 机器人灵巧手有刷与无刷空心杯电机解析
  • Bean的生命周期
  • 免费的 HTML 网页托管服务
  • 图像预处理-霍夫变换
  • React学习路线
  • 解决高德地图AMapUtilCoreApi、NetProxy类冲突
  • 哑光蓝色调风光人像Lr调色教程,手机滤镜PS+Lightroom预设下载!
  • Java for循环中,如何在内循环跳出外循环?
  • AI | 最近比较火的几个生成式对话 AI