cookice相关概念:
1、cookice是什么?
cookice是存储在客户端的组键值对。(服务器端产生)
2、web中cookice的典型应用?
免密登录
3、cookie和爬虫有什么联系?
有时候对一张页面发出请求的时候,如果请求中不加cookice是无法获取到对应的数据的,所以cookice是一个非常典型的反爬机制。
4、发出请求无法获取数据的解决方法?
一般可以将浏览器中的请求头将cookie手动粘贴在headers的字典当中,将headers作用到requests请求操作中即可。
5、有哪些方式可以解决方式?
方式一:手动处理
(1)将抓包工具中的cookie粘贴在headers中
(2)弊端:cookice是有有效时常的,过期后再发请求获取不到数据
方式二:自动处理
(1)基于session对象实现自动化处理
(2)如何获取一个自动化对象:
requests.session返回一个session对象。
(3)session对象的作用
该对象可以像requests一样发起get和post请求,只不过使用session对象发送请求的过程中如果产生了cookie,则将 cookie存入到该对象中,下次请求就携带cookice。
(4)此过程中session对象会被调用几次?
两次。第一次获取cookice存储到session对象当中,第二次将携带cookice发起get或post请求。
代理相关概念:
1、在爬虫中,代理指的是什么意思?
所谓的代理是指的是代理服务器。
2、作用是什么?
转发请求和响应。
3、爬虫中为什么要使用代理服务器?
如果在短时间内高频请求会被检测出来禁用。
注:不同匿名度的代理服务器有哪些?
名称 | 作用 |
透明 | 服务器可以检测到代理名称和ip |
匿名代理 | 可以检测到Ip |
高匿代理 | 都不知道 |
代理服务器(高性价比) :代理精灵
4、最后还需要封装代理池。
url = '网址'
page_text = requests.get(url=url,headers=headers).text
tree = etree.HTML(page_text)
proxy_list = tree.xpath('//boday//text()')
http_proxy = [] #代理池
for proxy in proxy_list:
dic = {
'http':proxy
}
http_proxy.append()