#!/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib
import urllib.request
import os
# 将用户名、密码、ip保存到环境变量中
proxy_server = os.environ.get('proxyServer')
user = os.environ.get('proxyuser')
pass_word = os.environ.get('password')
proxies = {
'http': '%s:%s@%s' % (user, pass_word, proxy_server)
}
proxy_handler = urllib.request.ProxyHandler(proxies=proxies)
opener = urllib.request.build_opener(proxy_handler)
response = opener.open('http://www.baidu.com/')
print(response.read().decode('utf-8'))
# print('----------------------------------------------------------------------')
'''
import urllib
import urllib.request
urllib.request.urlopen(url='http://www.baidu.com')
# Request
# 构建请求,就是为了添加header,伪装成浏览器,获取登陆之后才能获取的数据(Cookie)
# Hanlder 引入,就是为了能够使用代理
httpHandler = urllib.request.HTTPHandler()
# 打开一个网址
opener = urllib.request.build_opener(httpHandler)
# 使用opener访问网络数据 urllib.request.urlopen()
request = urllib.request.Request(url='http://www.baidu.com/')
# response = opener.open(fullurl='http://www.baidu.com/')
response = opener.open(request)
print(response.read().decode('utf-8'))
'''
# print('----------------------------------------------------------------------')
'''
import urllib
import urllib.request
http_handler = urllib.request.HTTPHandler()
opener = urllib.request.build_opener(http_handler)
# 方式一,直接使用opener发起请求
# 方式二,将opener作为参数设置给urllib.request.urlopen
# opener去全局的联网请求
urllib.request.install_opener(opener)
# urllib.request.urlopen() 相当于使用opener.open()
response = urllib.request.urlopen('http://www.baidu.com/')
print(response.read().decode('utf-8'))
'''
# print('----------------------------------------------------------------------')
'''
#urllib2_proxy1.py
import urllib2
# 构建了两个代理Handler,一个有代理IP,一个没有代理IP
httpproxy_handler = urllib2.ProxyHandler({"http" : "124.88.67.81:80"})
nullproxy_handler = urllib2.ProxyHandler({})
proxySwitch = True #定义一个代理开关
# 通过 urllib2.build_opener()方法使用这些代理Handler对象,创建自定义opener对象
# 根据代理开关是否打开,使用不同的代理模式
if proxySwitch:
opener = urllib2.build_opener(httpproxy_handler)
else:
opener = urllib2.build_opener(nullproxy_handler)
request = urllib2.Request("http://www.baidu.com/")
# 1. 如果这么写,只有使用opener.open()方法发送请求才使用自定义的代理,而urlopen()则不使用自定义代理。
response = opener.open(request)
# 2. 如果这么写,就是将opener应用到全局,之后所有的,不管是opener.open()还是urlopen() 发送请求,都将使用自定义代理。
# urllib2.install_opener(opener)
# response = urlopen(request)
print response.read()
'''
使用handler技术,处理封闭IP的反爬技术
最新推荐文章于 2023-07-08 09:30:00 发布