爬虫 (三)

1、代理服务器

​ 1、为什么要使用代理服务器?

​ 有时候用同一个ip去抓取某个网站时,时间久了就会被该网站屏蔽。此时可以通过代理服务器,去代替我们真实的IP去爬取。

​ 2、从哪里能够获取到代理服务器?

​ 代理服务器一般是要花钱购买的,如果用于实验也可以用免费的

http://www.kuaidaili.com/

http://www.xicidaili.com/

2、正则表达式

​ 元字符【单字符】

​ . [and] d D s S

​ 修饰符

​ .* + ? {m} {m,n} {m,}

​ 边界符

​ ^ $ A B

​ 贪婪模式

​ .*

​ 非贪婪模式

​ .*?

​ 模式修正

​ re.S 单行

​ re.M 多行

​ re.I 忽略大小写

3、XPath语法

层级等位:根据标签的层级关系进行查找

属性定位:根据属性查找标签

5、面试题

1.你写爬虫的时候都遇到过什么反爬虫措施,你是怎么解决的?

​ 设置用户代理 伪装浏览器

​ 禁止IP 设置代理服务器(一般是收费、测试可以用免费的)

​ 验证码 通过机器学习相关模型框架设别(后面再说)

​ 动态加载 ajax(追踪请求过程,对url进行抓取,进而请求) 非常复杂的(selenium+无界面浏览器)

​ 加密问题 解密(解密算法)

​ 账户阻挡 通过登录

​ 爬虫和反爬的博弈是做爬虫的核心问题,最终所有的反爬策略都会被解决掉,只不过公司成本能不能负担的了

2.为什么会用到代理?代理怎么使用(具体代码,请求在什么时候添加的代理)? 如果遇到代理失效该怎么办?

​ 当我们频繁的爬取某些网站的时候,这些网站有可能会启动其反爬机制,对我们的ip地址进行限制,为了突破这种限制,可以设置代理服务器,对我们的ip进行隐藏。

​ 可以设置一个代理池(一个列表放了多个代理服务器的ip),对代理进行管理,如果某一个禁用立即启用下一个

3.模拟登陆流程

​ 见代码

4.cookie如何处理?

​ 创建cookie->创建handler携带cookie->使用opener携带handler进行请求

5.http协议,请求由什么组成,每个字段分别有什么用?

​ 

原文地址:https://www.cnblogs.com/gugubeng/p/9723887.html