Python使用代理的方法
我们在做爬虫的过程中经常会遇到这样的情况:最初爬虫正常运行,正常抓取数据,一切看起来都是那么的美好,然而一杯茶的功夫可能就会出现错误,比如403 Forbidden;出现这样的原因往往是网站采取了一些反爬虫的措施,比如,服务器会检测某个IP在单位时间内的请求次数,如果超过了某个阈值,那么服务器会直接拒绝服务,返回一些错误信息。这时候,代理就派上用场了。
国内的免费代理网站:
接下来看如何设置代理:
urllib代理设置:
from urllib.error import URLError
from urllib.request import ProxyHandler,build_opener proxy='123.58.10.36:8080' #使用本地代理
#proxy='username:password@123.58.10.36:8080' #购买代理
proxy_handler=ProxyHandler({
'http':'http://'+proxy,
'https':'https://'+proxy
})
opener=build_opener(proxy_handler)
try:
response=opener.open('http://httpbin.org/get') #测试ip的网址
print(response.read().decode('utf-8'))
except URLError as e:
print(e.reason)
运行结果如下:
requests代理设置:
import requests proxy='123.58.10.36:8080' #本地代理
#proxy='username:password@123.58.10.36:8080'
proxies={
'http':'http://'+proxy,
'https':'https://'+proxy
}
try:
response=requests.get('http://httpbin.org/get',proxies=proxies)
print(response.text)
except requests.exceptions.ConnectionError as e:
print('错误:',e.args)
运行结果如下:
Selenium代理设置:
from selenium import webdriver proxy='123.58.10.36:8080'
chrome_options=webdriver.ChromeOptions()
chrome_options.add_argument('--proxy-server=http://'+proxy)
browser=webdriver.Chrome(chrome_options=chrome_options)
browser.get('http://httpbin.org/get')
运行结果:
以上就是代理的一些简单设置、、、
Python使用代理的方法的更多相关文章
- python使用代理ip
python使用代理的方法有两种 1. #先创建代理ip对象 proxy_support = urllib.request.ProxyHandler({'https':'117.64.149.137: ...
- Python爬虫代理池
爬虫代理IP池 在公司做分布式深网爬虫,搭建了一套稳定的代理池服务,为上千个爬虫提供有效的代理,保证各个爬虫拿到的都是对应网站有效的代理IP,从而保证爬虫快速稳定的运行,当然在公司做的东西不能开源出来 ...
- Python爬虫代理IP池
目录[-] 1.问题 2.代理池设计 3.代码模块 4.安装 5.使用 6.最后 在公司做分布式深网爬虫,搭建了一套稳定的代理池服务,为上千个爬虫提供有效的代理,保证各个爬虫拿到的都是对应网站有效的代 ...
- Python爬虫防封杀方法集合
Python爬虫防封杀方法集合 mrlevo520 2016.09.01 14:20* 阅读 2263喜欢 38 Python 2.7 IDE Pycharm 5.0.3 前言 ...
- python使用代理访问服务器
python使用代理访问服务器主要有一下3个步骤: 1.创建一个代理处理器ProxyHandler: proxy_support = urllib.request.ProxyHandler(),Pro ...
- python 类属性与方法
Python 类属性与方法 标签(空格分隔): Python Python的访问限制 Python支持面向对象,其对属性的权限控制通过属性名来实现,如果一个属性有双下划线开头(__),该属性就无法被外 ...
- Python执行系统命令的方法 os.system(),os.popen(),commands
os.popen():用python执行shell的命令,并且返回了结果,括号中是写shell命令 Python执行系统命令的方法: https://my.oschina.net/renwofei42 ...
- python 调用 shell 命令方法
python调用shell命令方法 1.os.system(cmd) 缺点:不能获取返回值 2.os.popen(cmd) 要得到命令的输出内容,只需再调用下read()或readlines()等 ...
- python 面向对象、特殊方法与多范式、对象的属性及与其他语言的差异
1.python 面向对象 文章内容摘自:http://www.cnblogs.com/vamei/archive/2012/06/02/2532018.html 1.__init__() 创建对 ...
随机推荐
- os 模块 模块与包的初始
os模块是与操作系统交互的模块之前我们也用过os模块就是更改文件的名字的时候 我们如果用os求求文件夹是不行的 可以求文件 因为文件夹在python中最大就是4090个字节 所以你必须求出文件夹内 ...
- 【Leetcode】【Medium】Simplify Path
Given an absolute path for a file (Unix-style), simplify it. For example,path = "/home/", ...
- 乘风破浪:LeetCode真题_020_Valid Parentheses
乘风破浪:LeetCode真题_020_Valid Parentheses 一.前言 下面开始堆栈方面的问题了,堆栈的操作基本上有压栈,出栈,判断栈空等等,虽然很简单,但是非常有意义. 二.Valid ...
- Activator 通过SSH解锁屏幕等手势操作
来源:https://qunwang6.github.io/blog/Activator/ Activator 发表于 2015-10-24 | 分类于 iOS Activator Activ ...
- Hdfs&MapReduce测试
Hdfs&MapReduce测试 测试 上传文件到hdfs 随意打开一个文件夹传一个文件试试(把javafx-src.zip传到hdfs的/根目录下):hadoop fs -put javaf ...
- procedure of intall and setup centos 6.5
select webserver install option,and select ,uncheck the postgresql option selected some “… platform” ...
- CentOS7中安装VMwareTools
本例中为在Linux(以CentOS 7为例)安装VMware Tools. 1.首先启动CentOS 7,在VMware中点击上方“VM”,点击“Install VMware Tools...”(如 ...
- Python ,pickle
@Python pickle模块学习 pickle提供了一个简单的持久化功能.可以将对象以文件的形式存放在磁盘上. ---------------------------------------- ...
- 面向对象的JavaScript --- 多态
面向对象的JavaScript --- 多态 多态 "多态"一词源于希腊文 polymorphism,拆开来看是poly(复数)+ morph(形态)+ism,从字面上我们可以理解 ...
- nd.array.where
http://mxnet.apache.org/api/python/ndarray/ndarray.html#mxnet.ndarray.where Return the elements, eit ...