Python教程

1.Python_爬虫基础

本文主要是介绍1.Python_爬虫基础,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

知识要点:

1.1 爬虫基本认知

1.2 网页基本认知

1.3 网页构成

1.4 XPath的基本使用

1.1 爬虫基本认知

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

爬虫的基本流程

  • 发起请求:发送一个Request
  • 获取响应内容:得到一个Response,即要获取的页面内容
  • 解析内容:用正则表方式,网页解析库进行解析
  • 保存数据:可以存为文本,存至数据库或者指定格式的文件

1.2 网页基本认知

浏览器工作原理:浏览器发送消息给该网址所在的服务器,这个过程叫做 HTTP Request。

Request:是请求,在浏览器输入地址,回车,就是一个请求。

  • 请求方式:主要有 get \post两种类型
  • 请求的URL:全称统一资源定位符
  • 请求头:包含请求时的头部信息
  • 请求体:请求时额外携带的数据,如表单提交时的表单数据

Response:是响应,服务器根据请求,返回数据到浏览器显示,就是一个响应。

  • 响应状态:有多种响应状态,如 200 代表成功、301跳转等
  • 响应头:如内容类型、服务器信息、设置 Cookie 等等
  • 响应体:最主要的部分,包含了请求资源的内容

网页数据类型

  • 网页文本:如 HTML 文档、Json 格式的文本等
  • 图片:获取到的二进制文件,保存为图片格式
  • 视频:获取到的二进制文件,保存为视频格式

网页的解析方式

  • 直接处理
  • Json 解析
  • BeartifulSoup
  • PyQuery
  • XPath

1.3 网页构成

网页构成:
标记符 说明
根元素
<doctype> 定义文档类型
<html> 定义 HTML 文档

元数据元素

<head> 定义关于文档的信息
<meta> 定义关于 HTML 文档的元数据
<link> 定义文档与外部资源之间的关系
<base> 定义页面上所有链接的默认地址或默认目标
<title> 定义文档标题
<style> 定义文档的样式信息
脚本元素
<script>

定义客户端脚本

<noscript> 定义当浏览器不支持脚本的时候所显示的内容
块元素
<body> 定义文档的主体
<h1>/<h2>...<h6> 定义文档标题
<p> 定义文档段落
<blockquote> 定义块引用
<ul>/<ul>/<dl> 定义列表
<table> 定义表格
列表标签
<ul> 定义无序列表
<li> 定义列表项
<ol> 定义有序列表
<dl> 定义定义列表
<dt> 定义定义术语
<dd> 定义定义描述

CSS 是一种定义样式结构如字体、颜色、位置等的语言,用于描述网页上的信息格式化和现实的方式;可以 直接存储于HTML网页或者单独的样式单文件。

  • 内联方式:样式定义在单个的 HTML元素中
  • 内部样式表:样式定义在 HTML 页的头元素中
  • 外部样式表
    • 将样式定义在一个外部的 CSS 文件中(.css 文件)
    • 由 HTML 页面引用样式表文件

JS:一种脚本语言,被广泛用于Web应用开发,常用来为网页添加动态功能,为用户提供更流畅美观的浏览效果。

  • JS 代码能直接嵌入网页的 任何地方
  • 可以把代码单独的放在一个.JS 文件中,多个页面可以引用同一份 .js 文件
  • 浏览器会按照顺序执行这些 JS 代码

1.4 XPath的基本使用

XPath 是一门在 XML 文档中查找信息的语言。 使用路径表达式来选取 XML 文档中的节点或者节点集。
注意: xpath速度比较快,是爬虫在网页定位中的较优选择,但是很多网页前端代码混乱难以定位。
安装: pip install lxml

XPath 的表达式

表达式 描述
nodename 选取此节点的所有子节点
/ 从根节点选择,路径的连接符
// 从匹配选择的当前节点选择文档中的节点,而不考虑他们的位置
. 选取当前节点
.. 选取当前节点的父节点
@ 选取属性
通配符

描述

*

匹配任何元素节点

@* 匹配任何属性节点
node() 匹配任何类型节点
这篇关于1.Python_爬虫基础的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!