爬虫代理(Python爬虫系列)

 2025-08-13 09:27:01  阅读 208  评论 0

摘要:HTTP代理获取代理IP首先需要获取一个可用代理IP和端口,可以从以下网站获取IP:西刺:https://www.xicidaili.com快代理:https://www.kuaidaili.com/free站大爷:http://ip.zdaye.com/dayProxy.html当然,你也可以从其他网站购买更稳定的代理IP。Urllib从上述网站获取代理IP,

HTTP代理

获取代理IP

首先需要获取一个可用代理IP和端口,可以从以下网站获取IP:

西刺:https://www.xicidaili.com快代理:https://www.kuaidaili.com/free站大爷:http://ip.zdaye.com/dayProxy.html

当然,你也可以从其他网站购买更稳定的代理IP。

Urllib

从上述网站获取代理IP, 这里我获取到IP:116.209.59.41,端口:9999

我们从基础的 Urllib 开始学习,来看一下代理的设置方法:

from urllib.error import URLError

from urllib.request import ProxyHandler, build_opener

def http_proxy(ip, port):

proxy = ip + ':' + port

proxy_handler = ProxyHandler({

'http': 'https://' + proxy,

'https': 'https://' + proxy

})

opener = build_opener(proxy_handler)

return opener

if __name__ == "__main__":

opener = http_proxy('116.209.59.41', '9999')

try:

response = opener.open('https://httpbin.org/get')

print(response.read().decode('utf-8'))

except URLError as e:

print(e.reason)

运行结果如下:

{

"args": {},

"headers": {

"Accept-Encoding": "identity",

"Connection": "close",

"Host": "httpbin.org",

"User-Agent": "Python-urllib/3.6"

},

"origin": "116.209.59.41",

"url": "https://httpbin.org/get"

}

返回结果是 Json,字段 origin标明了你现在的 IP。正好为代理 IP,不是真实的 IP,这样我们就成功设置好代理,可以使用opener打开任意网址。

Requests

Requests 代理设置代码如下:

import requests

if __name__ == "__main__":

ip = '116.209.59.41'

port = '9999'

proxy = ip + ':' + port

proxies = {

'http': 'https://' + proxy,

'https': 'https://' + proxy,

}

try:

response = requests.get('https://httpbin.org/get', proxies=proxies)

print(response.text)

except requests.exceptions.ConnectionError as e:

print('Error', e.args)

运行结果:

{

"args": {},

"headers": {

"Accept": "*/*",

"Accept-Encoding": "gzip, deflate",

"Connection": "close",

"Host": "httpbin.org",

"User-Agent": "python-requests/2.18.1"

},

"origin": "106.185.45.153",

"url": "https://httpbin.org/get"

}

Selenium

Selenium 同样可以设置代理。

elenium 设置代理的代码如下:

from selenium import webdriver

def get_driver_with_proxy(ip, port):

proxy = ip + ':' + port

chrome_options = webdriver.ChromeOptions()

chrome_options.add_argument('--proxy-server=https://' + proxy)

browser = webdriver.Chrome(chrome_options=chrome_options)\

return browser

if __name__ == "__main__":

browser = get_driver_with_proxy('106.185.45.153', '9999')

browser.get('https://httpbin.org/get')

这样我们只需要调用browser就可以使用代理IP访问任意网站了。

{

"args": {},

"headers": {

"Accept": "*/*",

"Accept-Encoding": "gzip, deflate",

"Connection": "close",

"Host": "httpbin.org",

"User-Agent": "python-requests/2.18.1"

},

"origin": "106.185.45.153",

"url": "https://httpbin.org/get"

}

可以看到代理设置成功。

PhantomJS

对于 PhantomJS代理设置代码如下:

from selenium import webdriver

def get_PhantomJS_driver(ip, port):

proxy = ip + ':' + port

args = [

f'--proxy={proxy}',

'--proxy-type=http'

]

browser = webdriver.PhantomJS(service_args=args)

return browser

if __name__ == "__main__":

browser = get_PhantomJS_driver('106.185.45.153', '9999')

browser.get('https://httpbin.org/get')

print(browser.page_source)

通过使用 args 参数进行代理IP设置。

运行结果:

{

"args": {},

"headers": {

"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",

"Accept-Encoding": "gzip, deflate",

"Accept-Language": "zh-CN,en,*",

"Connection": "close",

"Host": "httpbin.org",

"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X) AppleWebKit/538.1 (KHTML, like Gecko) PhantomJS/2.1.0 Safari/538.1"

},

"origin": "106.185.45.153",

"url": "https://httpbin.org/get"

}

运行结果的 origin 同样为代理的 IP,设置代理成功。

以上就是简单的一个Pytho的IP代理设置方法。我们只需要结合爬虫,爬取免费代理IP网站上面的IP构建自己的IP池,便可以轻松切换IP进行各种爬虫。

版权声明:我们致力于保护作者版权,注重分享,被刊用文章【爬虫代理(Python爬虫系列)】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!;

原文链接:https://www.yxiso.com/zhishi/2090560.html

标签:爬虫代理

发表评论:

关于我们
院校搜的目标不仅是为用户提供数据和信息,更是成为每一位学子梦想实现的桥梁。我们相信,通过准确的信息与专业的指导,每一位学子都能找到属于自己的教育之路,迈向成功的未来。助力每一个梦想,实现更美好的未来!
联系方式
电话:
地址:广东省中山市
Email:beimuxi@protonmail.com

Copyright © 2022 院校搜 Inc. 保留所有权利。 Powered by BEIMUCMS 3.0.3

页面耗时0.0346秒, 内存占用1.91 MB, 访问数据库24次

陕ICP备14005772号-15