【完美解决】爬虫伪装代理IP方案
爬虫伪装代理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版:
进入官网:https://redis.io/
点击redis标志那一栏的Download下载:But官网没有Windows版本,进GitHub:https://github.com/MicrosoftArchive/redis
在release中下载需要的版本压缩包
解压后输入: redis-server.exe redis.windows.conf ,当看到显示6379端口即操作成功
运行时此窗口不要关闭。
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服务器状态
宝塔安装
找到Redis……点一下安装即可
2. 安装ProxyPool
Windows版本:
- clone仓库
git clone https://github.com/Python3WebSpider/ProxyPool.git
打开项目中的 setting.py,在这里可以配置相关信息,比如 Redis 的地址密码相关
如果Redis 没有设置密码,此步跳过。
在你 clone 下来的文件目录中,安装相关所需的 python 模块
pip3 install -r requirements.txt
- redis保持开启
- 运行 run.py,(建议命令行运行或IDE运行们可以看到输出,Ctrl+C关闭)
- 访问http://localhost:5555/random可以得到代理IP
Linux版本:
git clone git@github.com:Python3WebSpider/ProxyPool.git (Python3.6以上)
通过docker安装
1. 安装docker (宝塔或pip)
2. 安装docker-compose (pip)
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方案相关推荐
- python3爬虫伪装代理IP
在爬取类似 起点 色魔张大妈 这样的网站时,会被网站看出是爬虫机制,这时需要伪装成浏览器以及使用IP代理的方式来爬去正常内容. 实例 import re import requests import ...
- 网页爬虫使用代理IP的几种方案,爬虫如何设置代理?
不少网络公司在进行爬虫数据业务的时候,都会选择代理IP,网页爬虫在现如今非常常见,尤其是一些大数据处理公司,都会使用爬虫的方式来进行信息的抓取,而要想进行信息的精准抓取,那就必须使用靠谱且稳定的代理I ...
- 网络爬虫生成代理ip
代理 写网络爬虫时,经常会遇到ip频繁访问被封的问题,经常使用的解决办法就是代理ip.为此,我写了一个随机生成一个可用代理ip的样例程序. 程序 package proxy;import java.i ...
- 利用多线程爬虫搭建代理ip池的两种方法(含源码)
搭建爬虫代理ip池的两种方法(含源码) 前言 一.ip池是什么? 二.爬取原理 三.使用步骤 方法一 爬取网站https://www.kuaidaili.com/ 验证 存取到mysql 方法二 爬取 ...
- python爬虫设置代理ip池
在使用python爬虫的时候,经常会遇见所要爬取的网站采取了反爬取技术,高强度.高效率地爬取网页信息常常会给网站服务器带来巨大压力,所以同一个IP反复爬取同一个网页,就很可能被封,那如何解决呢?使用代 ...
- Python爬虫添加代理IP池(新手)
给爬虫添加代理IP池 我们在运行爬虫的过程中由于请求次数过多经常会遇到被封IP的情况,这时就需要用到代理IP来解决.代理IP的原理,简单来说就像在本机和web服务器之间开一个中转站,把本机的请求交给代 ...
- python爬虫设置代理ip池——方法(一)
""" 在使用python爬虫的时候,经常会遇见所要爬取的网站采取了反爬取技术,高强度.高效率地爬取网页信息常常会给网站服务器带来巨大压力,所以同一个IP反复爬取同一个网 ...
- 爬虫篇——代理IP爬取备用及存储
爬虫篇--代理IP爬取备用及存储 代码 代码 本文通过抓取免费的高匿IP代理,将其写入列表并保存为json格式文件,且将代码进行了封装,方便以后抓取数据时动态的更新handle的IP地址,从一方面避免 ...
- 在Scrapy中使用爬虫动态代理IP
本文介绍如何在Scrapy中使用无忧代理(www.data5u.com)的爬虫动态代理IP,以及如何设置User-Agent. 动态转发参考https://blog.csdn.net/u0109787 ...
最新文章
- Paxos的工程实践
- python的groupby中函数详解_python groupby函数用法
- iframe 覆盖父页面_一次iframe子页面与父页面的通信
- Pad和Margin
- Android System分区大小异常
- 开源通用爬虫框架YayCrawler-页面的抽取规则定义
- linux面试题与参考答案(转)
- java的有意思的_发现一个有意思的项目banana
- 转载需作者授权是如何实现的
- python 测试开发请关注这个新框架
- Java 实现--时间片轮转 RR 进程调度算法
- sql 导入excel 遇到问题
- and design pro实现打印电子面单(菜鸟物流-可批量打印)
- linux怎么查看系统可用串口,linux串口驱动详解 如何查看linux下串口是否可用?串口名称等?...
- OneTool多平台助手程序网页源码全解版
- 解决teamviewer访问超时限制的问题
- 【CPM同步】连续相位调制(CPM)通信调制方法的载波同步和定时同步研究和matlab仿真
- 毕业第一站 | 北京游
- #新学期,新FLAG#飞翔的小野猪
- C#对数据库的各种操作
热门文章
- cadence 通孔焊盘_[转载]Cadence学习3(通孔类焊盘的建立)(转)
- IOS端微信小程序API播放视频无效,应该这样做
- 康奈尔大学计算机生物学是,康奈尔大学计算生物学难进吗?
- 虚幻引擎学习笔记——Month1 Week1
- CAD进阶练习(二)
- Android 编译错误:CreateProcess error=206, 文件名或扩展名太长。
- 机器翻译古文也翻车?读了20次“苟富贵勿相忘”后,谷歌:没钱的人总会被遗忘...
- 三菱fx1n40mr001接线图_三菱FX1N-40MR-001使用说明书 - 广州凌控
- python量化分析岗位_量化金融有哪些职位可以选择?
- libssl-dev : 依赖: libssl1.0.0 (= 1.0.2g-1ubuntu4.13) 但是 1.0.2n-1ubuntu5.1 正要被安装