python爬虫的基本原理

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_42554007/article/details/90642063

1.什么是爬虫

网络爬虫,请求网站并提取数据的自动化程序

2.爬虫基本流程

  1. 发起请求
  2. 获取响应内容
  3. 解析内容
  4. 保存数据

3.什么是Request和Response?

在这里插入图片描述

4.Request中包含什么

  1. 请求方式
    主要有Get,POST两种类型
    另外还有HEAD,PUT,DELETE,OPTIONS等
  2. 请求URL
    URL全称统一资源定位符,如一个网页文档、一张图片、一个视频等都可以用URL唯一来确定。
  3. 请求头
    包含请求时的头部信息,如User-Agent,Host,Cookies等信息
  4. 请求体
    请求时额外携带的数据
    如表单提交时的表单数据

5.Response中包含什么

  1. 响应状态
    有多种响应状态,如200代表成功,301代表跳转,404找不到页码,502服务器错误
  2. 响应头
    如内容类型,内容长度,服务器等信息,设置Cookie等待
  3. 响应体
    最主要的部分,包含了请求资源的内容,如网页HTML,图片二进制的数据等
import requests
response = requests.get("http://www.baidu.com")
print(response.text)
print(response.headers)
print(response.status_code) #响应体
headers = {'User-Agent':
    '''Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36\
    (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'''}
response = requests.get("http://www.baidu.com", headers = headers)

6.能抓怎样的数据

  1. 网页文本
    如HTML文档,Json格式文本等
  2. 图片
    获取到的是二级制文件,保存为图片格式
  3. 视频
    同为二进制文件,保存为视频格式即可。
  4. 其它
    只要是能请求到的,都能获取

7.怎样来解析

  1. 直接处理
  2. Json解析:weibo
  3. 正则表达式
  4. BeautifulSoup
  5. PyQuery
  6. Xpath

8.为什么我抓到的和浏览器看到的不一样

网页源代码是js渲染之后的代码,所以和我们抓到的代码不一样

9.怎样解决JavaScript渲染的问题

  1. 分析Ajax请求
  2. Selenium/WebDriver:获得源代码与网页一样
  3. Splash
  4. PyV8,Ghost.py

怎样保存数据?

  1. 文本
    纯文本,Json,Xml等
  2. 关系型数据库
    如MySQL,Oracle,SQL Server等具有结构化表结构形式存储。
  3. 非关系型数据库
    如MongoDB,Redis等Key-Value等形式村相互
  4. 二进制文件
    如图片,视频,音频等等直接保存成特定格式即可

猜你喜欢

转载自blog.csdn.net/qq_42554007/article/details/90642063