• 爬虫 (三)


    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协议,请求由什么组成,每个字段分别有什么用?

    ​ 

  • 相关阅读:
    pycharm中文乱码
    bootstrap-table分页
    sql将查询结果的某个字段赋值给另一个字段
    bootstrap tab选项卡
    cocos-js 精灵移动转圈
    配置环境变量路径有空格
    配置java环境遇到的问题及解决方案
    obj = obj || {} 分析这个代码的起到的作用
    sql server行转列
    sql server统计总成绩和排名
  • 原文地址:https://www.cnblogs.com/gugubeng/p/9723887.html
Copyright © 2020-2023  润新知