• 爬虫理论知识


    常用的请求方法
    
    (1)Get
    (2)Post
    (3)Put
    (4)Delete
    (5)Trace
    (6)Head
    (7)Connect
    (8)Options
    列举反爬虫机制
    (1)UA检测;UserAgent:实现UA伪装;Cookie:模拟登陆;Accept:接受数据类型
    (2)Robots协议
    (3)验证码
    (4)IP封禁
    (5)账号封禁
    (6)动态数据加载
    (7)Js数据加密
    (8)隐藏参数
    (9)字体反爬
    网页请求的库
    python
    (1)Requests
    (2)Urllib;https://blog.csdn.net/m0_43404934/article/details/122330996
    (3)Aiohttp
    爬虫中解析数据的模块
    (1)Lxml
    (2)Bs4
    (3)Pyquery
    怎么判断网站是否更新?
        1、304页面http状态码
    
        当第二次请求页面访问的时候,该页面如果未更新,则会反馈一个304代码,而搜索引擎也会利用这个304http状态码来进行判断页面是否更新。
    
        首先第一次肯定是要爬取网页的,假设是A.html,这个网页存储在磁盘上,相应地有个修改时间(也即是更新这个文件的时间)。
    
        那么第二次爬取的时候,如果发现这个网页本地已经有了,例如A.html,这个时候,你只需要向服务器发送一个If-Modified-Since的请求,
    把A.html的修改时间带上去。 如果这段时间内,A.html更新了,也就是A.html过期了,服务器就会HTTP状态码200,并且把新的文件发送过来,这时候只要更新A.html即可。 如果这段时间内,A.html的内容没有变,服务器就会返返回HTTP状态码304(不返回文件内容),这个时候就不需要更新文件。
    2、Last-Modified文件最后修改时间 这是http头部信息中的一个属性,主要是记录页面最后一次的修改时间,往往我们会发现,一些权重很高的网站,及时页面内容不更新,但是快照却还是能够每日更新,
    这其中就有Last
    -Modified的作用。通产情况下,下载网页我们使用HTTP协议,向服务器发送HEAD请求,可以得到页面的最后修改时间LastModifed,或者标签ETag。
    将这两个变量和上次下载记录的值的比较就可以知道一个网页是否跟新。这个策略对于静态网页是有效的。是对于绝大多数动态网页如ASP,JSP来说,
    LastModifed就是服务器发送Response的时间,并非网页的最后跟新时间,而Etag通常为空值。所以对于动态网页使用LastModifed和Etag来判断是不合适的,
    因此Last-Modified只是蜘蛛判断页面是否更新的一个参考值,而不是条件。

     参考链接:非原创,链接丢失

  • 相关阅读:
    16、springboot——错误处理原理+定制错误页面(1)
    15、springboot——CRUD-跳转到修改员工页面+员工修改和删除实现 ⑥
    14、springboot——CRUD-跳转到添加员工页面+员工添加实现⑤
    13、springboot——CRUD-thymeleaf公共页面元素抽取④
    12、springboot——CRUD登录和拦截③
    11、springboot——CRUD国际化②
    10、springboot——CRUD导入静态资源以及设置默认访问首页①
    9、springmvc的自动配置
    8、模板引擎thymeleaf(百里香叶)
    7、对静态资源映射的规则
  • 原文地址:https://www.cnblogs.com/topass123/p/16734011.html
Copyright © 2020-2023  润新知