zoukankan      html  css  js  c++  java
  • 【归纳】爬虫基础知识

    HTTP基本原理

    • URL:网址,用于唯一定位并访问网络资源
    • 超文本:文本+标签,HTML就是典型的超文本
    • HTTP:超文本传输协议,HTTPS是HTTP的安全版
    • HTTP请求过程:
      • 在开发者模式下访问任意网址(如www.baidu.com),即可看到HTTP交互过程
      • 完整的客户端请求包含请求方法、请求头和请求体
      • 常见的请求方法:GET, POST
    • 请求头(Request Headers)中的重要信息(当然还有很多其他内容,具体百度):
      • Cookie:标识了用户的会话信息,服务器通过Cookie来识别用户及其状态信息
      • Referer:标识这个请求是从哪个页面发来的,服务器可通过该信息进行来源统计及防盗链处理
      • User-Agent:简称UA,包含客户端的操作系统、浏览器等信息,爬虫访问时如果不伪装好UA,将很容易被服务器识别出来
    • 请求体:
      • POST的请求体为表单信息,GET的请求体为空
      • 爬虫如果要构造POST请求,需要在请求头中使用正确的Content-Type,具体见《实战》P84表2-2:Content-Type和POST提交数据方式的关系
    • 服务器的响应包含三个部分:响应状态码,响应头,响应体
      • 常见的响应状态码:200-正常响应,404-未找到页面,500-服务器内部错误,etc.
    • 响应体:包含服务器响应的正文内容,如HTML代码,图片的二进制数据等

    网页基础

    • 网页的组成包括:HTML、CSS和JavaScript
      • HTML:定义网页的内容和结构
      • CSS:定义HTML元素的排版布局
      • JS:定义网页的动态交互行为
    • HTML中的元素被称为节点,HTML中的所有节点均可被JS访问、修改、创建及删除
    • CSS使用选择器来定位HTML节点
    • 另一种比较常用的选择器叫做XPath,它也是用来定位并访问HTML/XML节点信息的

    爬虫的基本原理

    • 爬虫的三个基本动作:获取网页、提取信息和保存数据
      • 获取网页:可通过urllib、requests等Python库实现
      • 提取信息:最通用的方法是正则表达式,但其构造过程复杂且容易出错。一个比较可行的方法是使用Beautiful Soup、pyquery、lxml等库,通过网页节点属性、CSS选择器或XPath来提取网页信息
    • 现在的网页越来越多的采用JS进行构建,这时只抓HTML信息就没用了,我们需要分析其后台Ajax接口,或者用Selenium、Splash等库来实现模拟JS渲染
    • 动态网页:可以响应参数,产生变化的HTML代码

    会话和Cookies:

    • 会话:位于服务端,保存用户的会话/状态信息
    • Cookies:初始由服务端提供,然后保存于客户端,在客户端请求资源时供服务端识别用户状态信息(就像一张身份证/通行证)
    • Cookies的内容具有固定的属性结构,具体请百度
    • 会话和Cookies均有一个“过期时间”

    代理的基本原理

    • 通过代理服务器转发信息实现IP伪装
    • 代理服务器的匿名程度不同,匿名程度越低的代理服务器透露的信息越多(包括它自己的信息以及我们的信息),原封不动地转发数据包的代理服务器是匿名程度最高的
    • 一种比较有效的代理解决方案是ADSL拨号,拨一次号换一次IP,稳定性高
  • 相关阅读:
    不成熟打地鼠游戏
    代码
    简单的JS功能
    json取数据问题
    ojdbc14.jar 与ojdbc6.jar的区别
    IIS6.0开启gzip压缩
    column 'XXXX' in field list is ambiguous
    Struts bean:define标签用法
    hibernate 学习笔记
    The content of element type "strutsconfig" must match "(displayname?,descr
  • 原文地址:https://www.cnblogs.com/lokvahkoor/p/10665486.html
Copyright © 2011-2022 走看看