五种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)

原文地址:https://www.cnblogs.com/du-jun/p/10710833.html

时间: 2024-09-30 06:06:16

五种ip proxy的设置方法的相关文章

VMWare中Linux虚拟机设置静态IP上网的设置方法

VMWare中Linux虚拟机设置静态IP上网的设置方法 标签: vmwareLinux虚拟机securecrt静态IP上网 2016-05-18 02:30 702人阅读 评论(0) 收藏 举报  分类: Linux 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 现在大部分人的家庭网络环境都是通过无线路由器为家里的电脑和手机提供网络. 在使用VMware安装Linux之后,默认使用的是DHCP连接网络. 但是如果使用类似 SecureCRT以SSH方式连接到虚拟机上的

windows2003服务器双线双IP双网卡设置方法

双线双ip很好,网通用户访问网通线路,电信用户访问电信线路.但很多人会选用导入静态路由表,这个办法看似完美,其实问题很多. 1.电信用户如果被解析到网通的ip上,服务器根据路由表会返回电信线路,但用户请求的是网通ip,所以用户什么也得不到,就好像你从一楼买了东西,商场却在二楼给你出货了,而且不告诉你要去二楼拿. 2.就算被正确解析了,但是如果是教育网用户,服务器会因为路由表里没有ip记录而不会返回任何东西. 3.ip不断的都在变化,也有新增的,要不停的维护路由表实在太累. 以上三条中的任意一条的

Vmware下Ubuntu 14.04静态IP地址的设置方法

一.环境 宿主机 Win 8.1 虚拟机工具 VMware 10.0 虚拟主机系统 Ubuntu 14.04 二.说明 这里需要注意的是:VMware对于VMnet8采用如下规则(192.168.174.0网段为例): 第一个地址(192.168.174.1):静态地址,分配给宿主机的VMware Network Adapter VMnet8适配器使用: 第二个地址(192.168.174.2):静态地址,分配给NAT设备使用: 192.168.174.3 - 192.168.174.127:静

五种主要多核并行编程方法分析与比较

随着多核时代的到来与流行,传统的单线程串行程序的编程模式必将改变,取而代之的将是并行编程.目前已经有五种主要并行编程模型,下面将对此五种模型进行概括性的分析与比较: 1. MPI MPI(Message Passing Interface)消息传递接口是MPI论坛发布的一个库,而不是一门实现语言,支持C/C++/Fortran.是一种消息传递编程模型,为进程间通信服务.MPI提供了一种与平台无关,可以被广泛使用的编写消息传递程序的标准.用它来编写消息传递程序,不仅实用.可移植.高效和灵活,而且和

五种JSP页面跳转方法详解

1. RequestDispatcher.forward() 是在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到另外一个Servlet,JSP 或普通HTML文件,也即你的form提交至a.jsp,在a.jsp用到了forward()重定向至b.jsp,此时form提交的所有信息在 b.jsp都可以获得,参数自动传递. 但forward()无法重定向至有frame的jsp文件,可以重定向至有frame的html文件,

五种寻找 "Domain Admin" 运行的进程的方法

前言 当计算机加入到域后,默认将"Domain Admin"组赋予了本地系统管理员的权限.也就是说,在计算机添加到域,成为域的成员主机的过程中,系统将会自动把"Domain Admin"域组添加到本地的Administrators组中.因此,只要是Domain Admin组的成员均可访问本地计算机,而且具备"完全控制"的权限. 因此对于渗透测试人员来说,把"Domain Admin"域组添加到本地的Administrators

OpenVZ架构VPS安装BBR的五种方法(UML-LKL-LKL_Rinetd)

OpenVZ架构云主机部署BBR的五种方式(UML/LKL/LKL_Rinetd) 简介 日前OpenVZ部署BBR可谓火气酷热.可乐一向没写教程,今日就把伏笔VPS所见到的做成集中写成文章吧.提议使用NanQinLang-Rinetd 非Rinetd系列都需要有Tun/Tap支持 1.UML 本方式来自:https://www.91yun.co/archives/5345 1.一键执行script: Alpine linux 小内存版: UML 的系统是 Alpine linux ,需要 64

远程管理设备telnet的N种设置方法【你确定都会吗】

作为一名网络工程师,日常管理和配置设备,可以选择的方法有很多,很多(如下图), 但是最常用的配置手段,任然是本地使用console口,远程使用telnet(或SSH),本文以思科设备演示几种telnet的设置方法,抛砖引玉,供大家参考. 基本配置: R1(config)#inter fa0/0 R1(config-if)#ip add 10.1.1.1 255.255.255.0 R1(config-if)#no shutdown R2(config)#inter fa0/0 R2(config

数据库中的五种约束及其添加方法

数据库中的五种约束及其添加方法五大约束1.—-主键约束(Primay Key Coustraint) 唯一性,非空性 2.—-唯一约束 (Unique Counstraint)唯一性,可以空,但只能有一个 3.—-检查约束 (Check Counstraint) 对该列数据的范围.格式的限制(如:年龄.性别等) 4.—-默认约束 (Default Counstraint) 该数据的默认值 5.—-外键约束 (Foreign Key Counstraint) 需要建立两表间的关系并引用主表的列五大