1、python爬虫代理
使用
python
爬虫高频率的访问一个固定的网站的话,容易触发该目的网站的反爬机制,将你对应的IP
地址进行封禁,那么这个时候我们可以通过代理的方式,让目的网站无法识别到是哪一个IP
地址访问的。
(1)检测网站
我们在测试的时候,如何知道我们是通过代理访问的呢?这个时候我们需要使用一个检测网站,地址如下:
http://httpbin.org/
这个网站就是专门用来做检测用的,他有多种访问形式,可以来返回我们所需要的不同信息;
它也提供了各种访问的demo
,如下:
(2)有哪些好用的代理
如果可以自己购买几个IP地址,自己搭建代理是最合适的;当然了,也可以去选用第三方的,如下几个有收费的也有免费的,如果要保证可用性,当然是使用收费的更好了,因为免费的不止是你在用,有很多很多人都在用;
西刺免费代理IP:http://www.xicidaili.com/
快代理:http://www.kuaidaili.com/
代理云:http://www.dailiyun.com/
我们这里使用快代理的免费代理,界面如下:
(3)实操
上面我们了解了如何检测
python
使用是否使用代理,以及python
爬虫使用什么代理,这两个问题了解之后,我们就要将其结合起来了。
(3.1)在没有使用代理之前
输入:
from urllib import request
jier = request.urlopen('http://httpbin.org/get')
print(jier.read().decode('utf-8'))
输出:
{
"args": {},
"headers": {
"Accept-Encoding": "identity",
"Host": "httpbin.org",
"User-Agent": "Python-urllib/3.9",
"X-Amzn-Trace-Id": "Root=1-627fb6b9-12d3af8c6840430e3e71b01c"
},
"origin": "118.186.2.238",
"url": "http://httpbin.org/get"
}
可以看到输出的内容中有一个origin
,这就是我们在没有使用代理前的IP
地址;
(3.2)使用代理之后
输入:
from urllib import request
jier = request.ProxyHandler({'http': '183.236.123.242:8060'})
suner = request.build_opener(jier)
Reqs = request.Request('http://httpbin.org/get')
Reqs_2 = suner.open(Reqs)
print(Reqs_2.read().decode('utf-8'))
输出:
{
"args": {},
"headers": {
"Host": "httpbin.org",
"User-Agent": "Python-urllib/3.9",
"X-Amzn-Trace-Id": "Root=1-627fb85c-64d4af1a3c691fd43e956e56"
},
"origin": "183.236.123.242",
"url": "http://httpbin.org/get"
}
可以看到,返回信息中的origin
就已经变成了我们的代理IP
地址,说明我们使用代理是成功访问到目的地址了。
2、什么是cookie
我们知道,访问网站的时候大多数都是需要带cookie
的,为什么要有这个呢?其实可以理解成我们在这个网站的临时身份证,为什么是说是临时的呢,因为cookie
是存在有效期的,这个有效期各个网站都是不同的,要取决于这个网站本身。
而且,有很多网站都是需要登录才可以的,那么你使用用户名和密码进行登录,网站校验通过之后,就会给你返回一个cookie
,这样子在你接下来的固定时间内,你再该网站的所有操作,都是携带着cookie
来进行的。
我们通过上面的内容,对cookie
有一个简单的认识之后,就了解下cookie
都包含了什么吧:
Set-Cookie: NAME=VALUE;Expires/Max-age=DATE;Path=PATH;Domain=DOMAIN_NAME;SECURE
参数示意:
- NAME:
cookie
的名字 - VALUE:
cookie
的值 - Expires:
cookie
的过期时间,当超过该时间之后,这个cookie
就失效了 - Path:
cookie
作用的路径 - Domain:
cookie
作用的域名,比如显示的是.baidu.com
,就说明你可以访问这个父域名下的所有子域名,如果显示的是123.baidu.com
,那就就表示你这个cookie
只能访问这个子域名下的内容,当你切换不同域名的时候,你这个cookie
就失效了 - SECURE:是否仅在https协议下起作用
例如,我们访问百度的时候,cookie
截图如下:
3、通过带上cookie的方式访问网站
当我们访问某些需要登录才能访问到指定用户名密码的时候,就需要我们携带cookie
才能访问了,这个时候我们可以先用浏览器登录上,并访问下指定页面,检查下他携带的cookie
信息是什么,然后将其cookie
复制出来,放到我们的代码中,如下代码示例:
剩余内容请转至VX公众号 “运维家” ,回复 “168” 查看。
------ “运维家” ,回复 “168” ------
------ “运维家” ,回复 “168” ------
------ “运维家” ,回复 “168” ------
linux卸载硬盘,win7共享linux,linuxgdal安装,Linux7忘记密码,linux怎么进入文件的子目录,高通开源代码linux,linuxusr大小,重启服务器的linux命令,linux的jdk怎么安装啊;
linuxtar文件打不开,linux常用状态检测,linux成功开机界面,linux七种文件,linux命令死机,Linux+删除数据的命令,linux自动监听重启服务器,如何快速担任linux运维,Linux返回到波浪线,linux大数据架构搭建,分析linux被攻击。
网友评论