爬虫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())

浙公网安备 33010602011771号