爬虫4 使用代理ip发送请求

简述:使用代理服务器发送请求,隐藏自己的真实ip...

  一、 使用requests 发送代理请求, 地址不一定可以使用,多尝试

    1. 编写proxies代理参数字典

    2. 直接使用requests.get请求,加载代理ip参数发送请求

"""使用requests时加载代理服务地址"""
import requests
from fake_useragent import UserAgent


def proxies_requests():
    url = "http://httpbin.org/get"
    headers = {
        'User-Agent': UserAgent().chrome
    }
    proxies = {
        'http': 'http://218.14.108.53:8060'
    }
    r = requests.get(url, headers=headers, proxies=proxies)
    print('---响应值: ', r.status_code, '---返回编码: ', r.encoding)
    r.encoding = r.apparent_encoding
    print(r.text)
    

def main():
    
    proxies_requests()
    

if __name__ == '__main__':
    main()

 

 

  二、使用urllib 发送代理请求

  request = Request(url, headers=headers)

    1. 使用urllib.request下的ProxyHandler模块,来加载代理ip,生成对象

    2. 使用urllib.request下的build_opener模块,加载代理对象

"""proxy, 使用代理地址,防止本机ip被爬取的网站查封
    1. 使用代理ip信息, 查询‘ip代理’, 此处使用‘快代理’中的代理地址
    1. ProxyHandler库, 加载代理ip地址
    2. build_opener库, 类似urlopen,
    urllib2.urlopen()函数不支持验证、cookie或者其它HTTP高级功能。
    要支持这些功能,必须使用build_opener()函数创建自定义Opener对象。
"""

from urllib.request import Request, build_opener
from fake_useragent import UserAgent
from urllib.request import ProxyHandler


url = "http://httpbin.org/get"      # 此网址可以发返回发送的请求头信息
headers = {
    'User-Agent': UserAgent().chrome
}
request = Request(url, headers=headers)

# 创建代理地址对象
handler = ProxyHandler({'http': '182.46.197.33:9999'})

# 创建自定义opener对象, 加载代理地址对象
opener = build_opener(handler)

# 发送请求, 返回响应
response = opener.open(request)
info = response.read()
print(info.decode())

 

posted @ 2020-04-28 14:22  黑无常  阅读(457)  评论(0)    收藏  举报