五种ip proxy的设置方法
我们在制作爬虫爬取想要的资料时,由于是计算机自动抓取,强度大、速度快,通常会给网站服务器带来巨大压力,所以同一个IP反复爬取同一个网页,就很可能被封,在这里介绍相关的技巧,以免被封;但在制作爬虫时,还是要适当加入延时代码,以减少对目标网站的影响。
一、requests设置代理:
import requests
proxies = { "http": "http://192.10.1.10:8080", "https": "http://193.121.1.10:9080", }
requests.get("http://targetwebsite.com", proxies=proxies)
二、Selenium+Chrome设置代理:
from selenium import webdriver
PROXY = "192.206.133.227:8080"
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--proxy-server={0}'.format(PROXY))
browser = webdriver.Chrome(chrome_options=chrome_options)
browser.get('www.targetwebsize.com')
print(browser.page_source)
brsowser.close()
三、Selenium+Phantomjs设置代理:
# 利用DesiredCapabilities(代理设置)参数值,重新打开一个sessionId.
proxy=webdriver.Proxy()
proxy.proxy_type=ProxyType.MANUAL
proxy.http_proxy='192.25.171.51:8080'
# 将代理设置添加到webdriver.DesiredCapabilities.PHANTOMJS中
proxy.add_to_capabilities(webdriver.DesiredCapabilities.PHANTOMJS)
browser.start_session(webdriver.DesiredCapabilities.PHANTOMJS)
browser.get('http://www.targetwebsize.com')
print(browser.page_source)
# 还原为系统代理只需将proxy_type重新设置一次
proxy.proxy_type=ProxyType.DIRECT
proxy.add_to_capabilities(webdriver.DesiredCapabilities.PHANTOMJS)
browser.start_session(webdriver.DesiredCapabilities.PHANTOMJS)
四、爬虫框架scrapy设置代理:
在setting.py中添加代理IP
PROXIES = ['http://173.207.95.27:8080',
'http://111.8.100.99:8080',
'http://126.75.99.113:8080',
'http://68.146.165.226:3128']
而后,在middlewares.py文件中,添加下面的代码。
import scrapy from scrapy
import signals
import random
classProxyMiddleware(object):
''' 设置Proxy '''
def__init__(self, ip):
self.ip = ip
@classmethod
deffrom_crawler(cls, crawler):
return cls(ip=crawler.settings.get('PROXIES'))
defprocess_request(self, request, spider):
ip = random.choice(self.ip)
request.meta['proxy'] = ip
最后将我们自定义的类添加到下载器中间件设置中,如下。
DOWNLOADER_MIDDLEWARES = { 'myproject.middlewares.ProxyMiddleware': 543,}
五、Python异步Aiohttp设置代理:
proxy="http://192.121.1.10:9080"
asyncwithaiohttp.ClientSession()assession:
asyncwithsession.get("http://python.org",proxy=proxy)asresp:
print(resp.status)
# https方法一:
# connector = SocksConnector.from_url('socks5://localhost:1080', rdns=True)
# async with aiohttp.ClientSession(connector=connector) as sess:
# https方法二:
async with aiohttp.ClientSession() as session:
session.proxies = {'http': 'socks5h://127.0.0.1:1080',
'https': 'socks5h://127.0.0.1:1080'}
headers = {'content-type': 'image/gif',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36'
}
cookies = {'cookies_are': 'working'}
# proxy = "http://127.0.0.1:1080"
with async_timeout.timeout(10):#设置请求的最长时间为10s
# async with sess.get(url, proxy="http://54.222.232.0:3128") as res:
async with session.get(url,headers=headers,cookies=cookies, verify_ssl=False) as res:
text = await res.text()
print(text)
五种ip proxy的设置方法的更多相关文章
- 五种WordPress防止垃圾评论方法-过滤垃圾评论提高WP运行效率
WordPress貌似和垃圾评论是一对“孪生兄弟”,无论在国内还是国外的空间主机上搭建的Wordpress博客,无论Wordpress有多少流量多么低的权重,垃圾评论都会自动找上门来,假如有好几天没有 ...
- 服务器安全策略之《通过IP安全策略阻止某个IP访问的设置方法》
现在我们在布署好了一个网站,发布到外网后就意味着将会接受来自四面八方的黑客攻击,这个情况很常见,我们的网站基本上每天都要接受成千上万次的攻击,有SQL注入的.有代码注入的.有CC攻击等等...而我作为 ...
- VMWare中Linux虚拟机设置静态IP上网的设置方法
VMWare中Linux虚拟机设置静态IP上网的设置方法 标签: vmwareLinux虚拟机securecrt静态IP上网 2016-05-18 02:30 702人阅读 评论(0) 收藏 举报 ...
- windows2003服务器双线双IP双网卡设置方法
双线双ip很好,网通用户访问网通线路,电信用户访问电信线路.但很多人会选用导入静态路由表,这个办法看似完美,其实问题很多. 1.电信用户如果被解析到网通的ip上,服务器根据路由表会返回电信线路,但用户 ...
- Vmware下Ubuntu 14.04静态IP地址的设置方法
一.环境 宿主机 Win 8.1 虚拟机工具 VMware 10.0 虚拟主机系统 Ubuntu 14.04 二.说明 这里需要注意的是:VMware对于VMnet8采用如下规则(192.168. ...
- Linux双线双网卡双IP双网关设置方法
机房上架了一台测试机,系统是Ubuntu 9.04 X64的系统,母机IBM X336机器.用户需求是双线,故采用一个网卡配置电信地址,另一个网卡配置联通地址,安装好系统后配置好IP发现联通地址和电信 ...
- 五种JSP页面跳转方法详解
1. RequestDispatcher.forward() 是在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到另外一个 ...
- es6五种遍历对象属性的方法 - 表格整理
ES6 一共有5种方法可以遍历对象的属性. (1)for...in for...in循环遍历对象自身的和继承的可枚举属性(不含 Symbol 属性). (2)Object.keys(obj) Obje ...
- 命令行command line 使用 http proxy的设置方法 Setting Up HTTP Proxy in Terminal
Step 1: Install Shadowsocks Client Shadowsocks is an open-source proxy project to help people visit ...
随机推荐
- MariaDB第三章:数据库设计与备份--小白博客
数据库设计 1.第一范式(确保每列保持原子性) 第一范式是最基本的范式.如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式. 2.第二范式(确保表中的每列都和主键相关) 第 ...
- 292. Nim Game(easy)
You are playing the following Nim Game with your friend: There is a heap of stones on the table, eac ...
- 解决刷新页面vuex store中数据丢失的问题
**问题背景:**页面刷新后,vuex中的数据丢失.这是因为:js代码是运行在内存中的,代码运行时的所有变量.函数也都是保存在内存中的.进行刷新页面的操作,以前申请的内存被释放,重新加载脚本代码,变量 ...
- JDBC连接池之C3P0
1.导入jar包 c3p0-0.9.1.jar mchange-commons-java-0.2.3.4(注:该jar包是c3p0数据库连接池的辅助包,没有这个包系统启动的时候会报classnotfo ...
- windows配置MySQL
mysql安装.启动和基础配置 --windows版本 1.把下载好的zip文件解压到任意目录下,这个目录就是mysql的安装目录. 2.打开目录找到my-default.ini这个配置文件,复制这个 ...
- 【XSY2843】「地底蔷薇」 NTT什么的 扩展拉格朗日反演
题目大意 给定集合\(S\),请你求出\(n\)个点的"所有极大点双连通分量的大小都在\(S\)内"的不同简单无向连通图的个数对\(998244353\)取模的结果. \(n\le ...
- FastDFS 分布式文件系统搭建
安装依赖环境yum install make cmake gcc gcc-c++ pcre-devel zlib-devel perl-devel 安装libfastcommon-master.zip ...
- 批量ping 检测linux主机是否可以通
批量ping 检测linux主机是否可以通 # 1.配置列表 [root@db137 liweiwie]# cat /home/dbatlbb/script/liweiwie/ping_ip.txt ...
- Numpy系列(十)- 掩码数组
简介 有时候数据集中存在缺失.异常或者无效的数值,我们可以标记该元素为被屏蔽(无效)状态. import numpy as np import numpy.ma as ma x = np.array( ...
- Vue基础之es6
什么是ECMAScript,以及es6的诞生? 1997年 ECMAScript 1.0 诞生 1999年12月 ECMAScript 3.0诞生,它 是一个巨大的成功,在业界得到了广泛的支持,它奠定 ...