爬虫 (三)
1、为什么要使用代理服务器?
有时候用同一个ip去抓取某个网站时,时间久了就会被该网站屏蔽。此时可以通过代理服务器,去代替我们真实的IP去爬取。
2、从哪里能够获取到代理服务器?
代理服务器一般是要花钱购买的,如果用于实验也可以用免费的
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协议,请求由什么组成,每个字段分别有什么用?