五种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 ...
随机推荐
- Leetcode 27. Remove Element(too easy)
Given an array and a value, remove all instances of that value in-place and return the new length. D ...
- iOS抓包工具Charles
Charles安装 HTTP抓包 HTTPS抓包 1. Charles安装 官网下载安装Charles:https://www.charlesproxy.com/download/ 2. HTTP ...
- 好坑吖,几乎GG,关于Nginx和supervisor的配置
从没想过部署个站点居然这么费劲.这还是搞了好多回且环境都具备的前提一下. 不过问题还是挺刁钻的,下面详细说一下. 1.net core编译少dll文件问题 发布到服务器上执行dotnet FileSe ...
- SpringMVC整合freeMarker实现页面静态化+SpringMVC配置多视图
一.背景 1.什么是FreeMarker FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写 FreeMarker被设计用来生成HTML Web页面,特别是基于 ...
- kettle查询
>流查询: 1.转换设计 2.主数据 3.查询数据 4.流查询 5.数据预览 查询中有重复数据默认获取最后一条:查询数据中有重复数据,默认获取到了最后一条数据. 主数据中无匹配数据则在结果集中返 ...
- Shell命令-文件及内容处理之cat、tac
文件及内容处理 - cat.tac 1. cat:显示文件内容 cat命令的功能说明 cat命令用于连接多个文件并且打印到屏幕输出或重定向到指定文件中 cat命令的语法格式 cat [OPTION]. ...
- Python 使用 matplotlib绘制3D图形
3D图形在数据分析.数据建模.图形和图像处理等领域中都有着广泛的应用,下面将给大家介绍一下如何在Python中使用 matplotlib进行3D图形的绘制,包括3D散点.3D表面.3D轮廓.3D直线( ...
- python 基础篇练习题
一.练习题 # 1.统计元组中所有数据属于字符串的个数,提示:isinstance() # 数据:t1 = (1, 2, '3', '4', 5, '6') # 结果:3 # 2.将以下数据存储为字典 ...
- Docker批量打标签,批量推送
docker tag awmts- registry.gfstack.geo:/awmts- docker tag cts- registry.gfstack.geo:/cts- docker tag ...
- P1742 最小圆覆盖(计算几何)
体验过\(O(n^3)\)过\(10^5\)吗?快来体验一波当\(wys\)的快感吧\(QAQ\) 前置芝士1:二元一次方程组求解 设 \[\begin{cases}a1 * x + b1*y=c1\ ...