爬虫伪装代理IP

爬虫程序频繁访问某网站,很容易触发网站的保护机制,造成无法访问。本文将解决这一问题。

首先要伪装请求头,request默认是python-requests,emmm,这不是找事嘛,首先可以考虑改一下,然而,固定的还是容易被发现了,所以这里我用User-Agent随机生成。

But,仅仅伪装headers,使用随机 User-Agent来请求也会被发现,同一个ip地址,访问的次数太多,ip会被屏蔽,就用其他的ip继续去访问。这里有两种方案,一种是使用IP代理池,速度慢,能用的不多,所以这里我们使用开源库的ip代理池—异步async-proxy-pool。

下面详细介绍安装及用法。

0.伪装请求头-随机User-Agent

from fake_useragent import UserAgent   # 下载:pip install fake-useragent
import requestsua = UserAgent()        # 实例化,需要联网但是网站不太稳定-可能耗时会长一些
headers = {'User-Agent': ua.random    # 伪装}
url = 'https://www.baidu.com/'
response = requests.get(url, headers=headers)
print(response.status_code)

1. 安装Redis

Windows版:

  1. 进入官网:https://redis.io/

  2. 点击redis标志那一栏的Download下载:But官网没有Windows版本,进GitHub:https://github.com/MicrosoftArchive/redis

  3. 在release中下载需要的版本压缩包
  4. 解压后输入: redis-server.exe redis.windows.conf ,当看到显示6379端口即操作成功

  5. 运行时此窗口不要关闭。

Linus版本:

1.在线安装

直接输入命令 sudo apt-get install redis-server
安装完成后,Redis服务器会自动启动。
使用ps -aux|grep redis命令可以看到服务器系统进程默认端口6379

redis      2890  0.2  0.1  41872  6064 ?        Ssl  14:17   0:07 /usr/bin/redis-server 127.0.0.1:6379
hzlarm     3222  0.0  0.0  11324   780 pts/2    S+   15:02   0:00 grep --color=auto redis

使用netstat -nlt|grep 6379命令可以看到redis服务器状态
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN
使用sudo /etc/init.d/redis-server status命令可以看到Redis服务器状态

  1. 宝塔安装

    找到Redis……点一下安装即可

2. 安装ProxyPool

Windows版本:

  1. clone仓库
git clone https://github.com/Python3WebSpider/ProxyPool.git
  1. 打开项目中的 setting.py,在这里可以配置相关信息,比如 Redis 的地址密码相关

    如果Redis 没有设置密码,此步跳过。

  2. 在你 clone 下来的文件目录中,安装相关所需的 python 模块

pip3 install -r requirements.txt
  1. redis保持开启
  2. 运行 run.py,(建议命令行运行或IDE运行们可以看到输出,Ctrl+C关闭)
  3. 访问http://localhost:5555/random可以得到代理IP

Linux版本:

git clone git@github.com:Python3WebSpider/ProxyPool.git (Python3.6以上)

通过docker安装

​ 1. 安装docker (宝塔或pip)

​ 2. 安装docker-compose (pip)

  1. docker-compose up
    

https://github.com/Python3WebSpider/ProxyPool

普通安装

pip3 install -r requirements.txt
python3 run.py

我用的Python3.5,需要安装pip3
首先切换Python版本:https://blog.csdn.net/xbean1028/article/details/102482965

【完美解决】爬虫伪装代理IP方案相关推荐

  1. python3爬虫伪装代理IP

    在爬取类似 起点 色魔张大妈 这样的网站时,会被网站看出是爬虫机制,这时需要伪装成浏览器以及使用IP代理的方式来爬去正常内容. 实例 import re import requests import ...

  2. 网页爬虫使用代理IP的几种方案,爬虫如何设置代理?

    不少网络公司在进行爬虫数据业务的时候,都会选择代理IP,网页爬虫在现如今非常常见,尤其是一些大数据处理公司,都会使用爬虫的方式来进行信息的抓取,而要想进行信息的精准抓取,那就必须使用靠谱且稳定的代理I ...

  3. 网络爬虫生成代理ip

    代理 写网络爬虫时,经常会遇到ip频繁访问被封的问题,经常使用的解决办法就是代理ip.为此,我写了一个随机生成一个可用代理ip的样例程序. 程序 package proxy;import java.i ...

  4. 利用多线程爬虫搭建代理ip池的两种方法(含源码)

    搭建爬虫代理ip池的两种方法(含源码) 前言 一.ip池是什么? 二.爬取原理 三.使用步骤 方法一 爬取网站https://www.kuaidaili.com/ 验证 存取到mysql 方法二 爬取 ...

  5. python爬虫设置代理ip池

    在使用python爬虫的时候,经常会遇见所要爬取的网站采取了反爬取技术,高强度.高效率地爬取网页信息常常会给网站服务器带来巨大压力,所以同一个IP反复爬取同一个网页,就很可能被封,那如何解决呢?使用代 ...

  6. Python爬虫添加代理IP池(新手)

    给爬虫添加代理IP池 我们在运行爬虫的过程中由于请求次数过多经常会遇到被封IP的情况,这时就需要用到代理IP来解决.代理IP的原理,简单来说就像在本机和web服务器之间开一个中转站,把本机的请求交给代 ...

  7. python爬虫设置代理ip池——方法(一)

    """ 在使用python爬虫的时候,经常会遇见所要爬取的网站采取了反爬取技术,高强度.高效率地爬取网页信息常常会给网站服务器带来巨大压力,所以同一个IP反复爬取同一个网 ...

  8. 爬虫篇——代理IP爬取备用及存储

    爬虫篇--代理IP爬取备用及存储 代码 代码 本文通过抓取免费的高匿IP代理,将其写入列表并保存为json格式文件,且将代码进行了封装,方便以后抓取数据时动态的更新handle的IP地址,从一方面避免 ...

  9. 在Scrapy中使用爬虫动态代理IP

    本文介绍如何在Scrapy中使用无忧代理(www.data5u.com)的爬虫动态代理IP,以及如何设置User-Agent. 动态转发参考https://blog.csdn.net/u0109787 ...

最新文章

  1. Paxos的工程实践
  2. python的groupby中函数详解_python groupby函数用法
  3. iframe 覆盖父页面_一次iframe子页面与父页面的通信
  4. Pad和Margin
  5. Android System分区大小异常
  6. 开源通用爬虫框架YayCrawler-页面的抽取规则定义
  7. linux面试题与参考答案(转)
  8. java的有意思的_发现一个有意思的项目banana
  9. 转载需作者授权是如何实现的
  10. python 测试开发请关注这个新框架
  11. Java 实现--时间片轮转 RR 进程调度算法
  12. sql 导入excel 遇到问题
  13. and design pro实现打印电子面单(菜鸟物流-可批量打印)
  14. linux怎么查看系统可用串口,linux串口驱动详解 如何查看linux下串口是否可用?串口名称等?...
  15. OneTool多平台助手程序网页源码全解版
  16. 解决teamviewer访问超时限制的问题
  17. 【CPM同步】连续相位调制(CPM)通信调制方法的载波同步和定时同步研究和matlab仿真
  18. 毕业第一站 | 北京游
  19. #新学期,新FLAG#飞翔的小野猪
  20. C#对数据库的各种操作

热门文章

  1. cadence 通孔焊盘_[转载]Cadence学习3(通孔类焊盘的建立)(转)
  2. IOS端微信小程序API播放视频无效,应该这样做
  3. 康奈尔大学计算机生物学是,康奈尔大学计算生物学难进吗?
  4. 虚幻引擎学习笔记——Month1 Week1
  5. CAD进阶练习(二)
  6. Android 编译错误:CreateProcess error=206, 文件名或扩展名太长。
  7. 机器翻译古文也翻车?读了20次“苟富贵勿相忘”后,谷歌:没钱的人总会被遗忘...
  8. 三菱fx1n40mr001接线图_三菱FX1N-40MR-001使用说明书 - 广州凌控
  9. python量化分析岗位_量化金融有哪些职位可以选择?
  10. libssl-dev : 依赖: libssl1.0.0 (= 1.0.2g-1ubuntu4.13) 但是 1.0.2n-1ubuntu5.1 正要被安装