zoukankan      html  css  js  c++  java
  • 爬虫 (三)

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

    ​ 

  • 相关阅读:
    HDU.2087 剪花布条
    一个acm过来人的心得
    一个acm过来人的心得
    HDU.2190 悼念512汶川大地震遇难同胞——重建希望小学
    HDOJ.2501 Tiling_easy version
    HDOJ.2501 Tiling_easy version
    HDU
    poj3216 Prime Path(BFS)
    poj1426 Find The Multiple (DFS)
    Rikka with Nickname (简单题)
  • 原文地址:https://www.cnblogs.com/gugubeng/p/9723887.html
Copyright © 2011-2022 走看看