广州番禺Python, Java小班周末班培训
薯条老师在广州做Python和Java的小班培训,一个班最多10人,学员的平均就业薪资有11K。不在广州的同学可以报名线上直播班,跟线下小班的同学们同步学习。培训的课程有Python爬虫,Python后端开发,Python办公自动化,Python大数据分析,Python量化投资,Python机器学习,Java中高级后端开发。授课详情请点击:http://chipscoco.com/?cate=6
4.3.1什么是HTTP代理?
现实生活中会遇见各种代理,比如房屋中介。房屋中介说好听点是个代理,说不好听点就是跑腿的,代为房东们跑东跑西,寻找租客或买家。
房屋中介是房东的代理,那么HTTP代理呢?自然就是HTTP的代理。
进一步理解HTTP代理,同学们可以先梳理下网页的访问过程。我们访问某一个网页时,会先打开浏览器,然后在地址栏中输入网页的URL,按下回车键以后,浏览器向HTTP服务器发起请求。HTTP服务器对浏览器的请求进行处理,最终响应网页内容给浏览器进行解析和渲染。
HTTP代理,既可以正向代理HTTP客户端,向HTTP服务器发送请求。也可以反向代理HTTP服务器,向HTTP客户端响应数据。下图为代理浏览器(HTTP客户端)向服务端发起HTTP请求:
4.3.2 HTTP正向代理
所谓的正向代理,是指沿着客户端请求的方向所进行的HTTP代理。以浏览器访问网页为例,如果没有正向代理,浏览器会直接向服务器发起请求。如果引入正向代理,会在浏览器与服务器之间增加一个HTTP代理,代为浏览器向服务器发起请求。
以租房进行举例,我们可以委托中介来帮我们找房子,那么怎么做呢?将租房要求告诉中介,然后中介再根据这些要求去找合乎我们要求的房源。此时的中介就是我们的正向代理。
引入正向代理以后,直接与HTTP服务器交互的就是代理,利用这样的特性,我们可以使用HTTP代理对服务器隐藏用户的IP地址等其它信息。正向代理经常用于爬虫程序中,我们可以在爬虫程序中使用HTTP代理,以隐藏爬虫的IP信息,防止被站点服务器拉入黑名单。
频繁地使用某一个固定的IP来抓取站点数据,会很容易被服务器的反爬程序识别为恶意爬虫,此时我们可以借助于HTTP代理,来隐藏爬虫的IP地址。
代码实例-在requests中使用HTTP代理:
import requests """ (1) 字典类型变量headers,用来定义HTTP请求头。我们可以在headers变量中定义User-Agent,cookie等字段 """ headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36', # 在HTTP请求头中发送cookie 'cookie':'id=22932bc7cac200a2||t=1596548529|et=730|cs=002213fd4896b0a597850f7bf7' } """ (1) 字典类型变量proxies,用来配置HTTP代理。 (2) 键名表示代理所使用的协议,常用的有http与https。https协议是HTTP加上 TLS/SSL 协议所构建的加密传输协议。 (3) 键值表示http代理的地址。 """ proxies = { # 以下代理并不存在,为薯条老师虚构的代理地址,读者可自行找寻可用的HTTP代理 "http":"http://119.138.33.28:8080" } # 以下url并不存在,同学们在实际练习时,可将之替换为待抓取的网页的url url = "http://www.justtest.com" # 通过关键字参数proxies来传递http代理的配置信息 response = requests.get(url, headers = headers, proxies = proxies)
HTTP代理可以隐匿爬虫的IP地址,我们可以根据http代理的匿名程度, 将其分为以下三类:
HTTP代理 | 描述 |
透明代理 | 会传送用户的真实IP,并不是真正意义上的匿名 |
匿名代理 | 不会传送用户的真实IP,但是会在请求中携带与代理相关的字段信息 |
不会传送用户的真实IP,也不会在请求中携带与代理相关的字段信息 |
在互联网中,既有免费的HTTP代理,也有商用的HTTP代理。免费HTTP代理的IP质量差,稳定性不佳。商用HTTP代理稳定性高,高度可匿,读者需根据自己的实际需求来进行选择。
4.3.3 HTTP反向代理
所谓的反向代理,是指沿着服务端响应的方向进行的HTTP代理。对客户端来说,反向代理即为源服务器。反向代理代为服务器接收客户端请求,在数据已缓存的情况下,可以直接向客户端响应数据,而无需源服务器进行处理。从这一点来看,使用反向代理可以减轻源服务器的负载压力,提升对资源的响应速度。
nginx是比较流行的HTTP反向代理,同学们可以通过下图对正向代理,反向代理进行理解:
与爬虫相关的主要是正向代理,关于HTTP反向代理,不再进行介绍。感兴趣的读者可以继续学习与反向代理相关的知识。
4.3.4 知识要点
(1) HTTP代理,既可以正向代理HTTP客户端,向HTTP服务器发送请求。也可以反向代理HTTP服务器,向HTTP客户端响应数据。
(2) HTTP正向代理,即代为客户端向HTTP服务器发起请求。HTTP反向代理,即代为服务端接收客户端的请求。
(3) 正向代理经常用于爬虫程序中,在爬虫程序中使用HTTP正向代理,可以隐藏爬虫的IP信息,防止被站点服务器拉入黑名单。
(4) 在request的HTTP请求方法中,通过关键字参数proxies来传递http代理的配置信息。
4.3.5 最具实力的小班培训
薯条老师在广州做Python和Java的小班培训,一个班最多10人。不在广州的同学可以报名线上直播班,跟线下小班的同学们同步学习。打算参加小班培训的同学,必须遵守薯条老师的学习安排,认真做作业和项目。把知识学好,学扎实,那么找到一份高薪的工作就是很简单的一件事。
(1) Python后端工程师高薪就业班,月薪11K-18K,免费领取课程大纲
(2) Python爬虫工程师高薪就业班,年薪十五万,包拿Offer
(3) 数据分析高薪就业班,月薪11K-15K, 免费领取课程大纲
(4) Python大数据挖掘,量化投资就业班,月薪12K-25K,免费领取课程大纲
扫码免费领取Python学习资料: