python爬虫——基础知识

简介: python爬虫——基础知识

python爬虫——基础知识

Python高级——爬虫
专栏收录该内容
3 篇文章0 订阅
订阅专栏
python爬虫——基础知识
一、网页基础知识
二、爬虫的思路
1、HTML文档(超文本)
三、ROBOTS协议
四、浏览器发送HTTP请求的过程
1、http请求过程
2、请求
五、SSL连接错误
六、HTML标签层级结构
七、选择器
八、会话Cookies
九、代理的基本原理
代理:实现IP 伪装,反反爬虫
一、网页基础知识
在编写爬虫程序之前首先要了解一些必要的网页知识

二、爬虫的思路
提取数据来源:
HTML文档
josn 数据
1、HTML文档(超文本)
每一份网页都是一份HTML文档,是一种文本标记语言
由一系列标签组成:(如图)
我们要爬取的内容大部分都是便签里的 .text文本

常规操作

  • 1、打开一个网页,即通过了Http协议,对一个资源进行了请求,返还一份HTML文档
  • 2、浏览器 进行文档的渲染,形成一个网页
  • 3、模拟浏览器,发送一份请求,获取文档,提取需要的数据(爬虫要做的)

通用爬虫、聚焦爬虫工作流程:

三、ROBOTS协议
Robots协议:网站通过Robots协议告诉 搜索引擎 哪些页面可以抓取,那些页面不可以抓取
例如:http://www.tobo.com/tobots.txt(淘宝网的Robots协议文档)
看一下这个协议的内容:

限制百度引擎下的爬虫爬取淘宝网的全部内容

这个是通过反爬虫策略实现的,
对于反爬虫策略,我们也有 反反爬虫策略,搞他!

四、浏览器发送HTTP请求的过程
http 超文本传输协议
https 用SSL层加密的超文本传输协议

浏览器渲染出来的页面 和 爬虫请求的页面并不一样

1、http请求过程
比如:https://www.baidu.com/,用Chrome 浏览器的开发者模式下的Network 监听组件来做下演示,它可以显示访问当前请求网页时发生的所有网络请求和响应。

打开Chrome 浏览器,输入链接https://www.baidu.com/
右击并选择“检查”项,即可打开浏览器的开发者工具,结果如下图所示

第一列Name :请求的名称,一般会将URL 的最后一部分内容当作名称。
第二Status :响应的状态码,这里显示为200 ,代表响应是正常的。通过状态码,我们可以判断发送了请求之后是否得到了正常的响应。
第二Status :响应的状态码,这里显示为200 ,代表响应是正常的。通过状态码,我们可以判断发送了请求之后是否得到了正常的响应。
第三列Type :请求的文梢类型。这里为document ,代表我们这次请求的是一个HTML 文档,内容就是一些HTML 代码。
第四列Initiator :请求源。用来标记请求是由哪个对象或进程发起的。
第五列Size :从服务器下载的文件和请求的资源大小。如果是从缓存中取得的资源,则该列会显示from cache 。
第六列Time :发起请求到获取响应所用的总时间。
第七列Waterfall:网络请求的可视化瀑布流。
2、请求
在爬取数据的时候要模拟浏览器请求,那么就要创建一个请求
请求:由客户端向服务端发出,可以分为4 部分内容:请求方法(Request Method )、请求的网址( Request URL )、请求头(Request Headers )、请求体(Request Body )

请求方法(Request Method )
常见的请求方法有两种:GET 和POST 。
在浏览器中直接输入URL 并回车,这便发起了一个GET 请求,请求的参数会直接包含到URL里
例如,在百度中搜索Python ,这就是一个GET 请求,链接为https://www.baidu.corn/s?wd= Python ,其中URL 中问号后面为请求的参数信息,这里参数wd表示要搜寻的关键字。
POST 请求大多在表单提交时发起。比如,对于一个登录表单,输入用户名和密码后,点击“登录”按钮,这通常会发起一个POST请求,其数据通常以表单的形式传输,而不会体现在URL 中。
GET 和POST 请求方法有如下区别

GET 请求中的参数包含在URL 里面,数据可以在URL 中看到,而POST 请求的URL 不会包含这些数据,数据都是通过表单形式传输的,会包含在请求体中
GET 请求提交的数据最多只有1024 字节,而POST 方式没有限制。
一般来说,登录时,需要提交用户名和密码,其中包含了敏感信息,使用GET 方式请求的话,密码就会暴露在URL 里面,造成密码泄露,所以这里最好以POST 方式发送。

上传文件时,由于文件内容比较大,也会选用POST 方式。

请求的网址( Request URL )
请求的网址,即统一资惊定位符URL ,它可以唯一确定我们想请求的资源。
请求头(Request Headers )
请求头是请求的重要组成部分,在写爬虫时,大部分情况下都需要设定请求头。
请求头,用来说明服务器要使用的附加信息,比较重要的信息有Cookie 、Referer 、User-Agent 等。下面简要说明一些常用的头信息。
Accept :请求报头域,用于指定客户端可接受哪些类型的信息。
Accept-Language :指定客户端可接受的语言类型。
Accept-Encoding :指定客户端可接受的内容编码。
Host :用于指定请求资源的主机IP 和端口号,其内容为请求URL 的原始服务器或网关的位置。从HTTP 1. l 版本开始,请求必须包含此内容。
Referer :此内容用来标识这个请求是从哪个页面发过来的,服务器可以拿到这一信息并做相应的处理,如做来源统计、防盗链处理等。
User-Agent :简称UA ,它是一个特殊的字符串头,可以使服务器识别客户使用的操作系统及版本、浏览器及版本等信息。在做爬虫时加上此信息,可以伪装为浏览器;如果不加,很可能会被识别为爬虫。
Content-Type :也叫互联网媒体类型(Internet Media Type )或者MIME 类型,在HTTP 协议消息头中,它用来表示具体请求中的媒体类型信息。例如,text/html 代表HTML 格式,image/gif代表GIF 图片,app lication/json 代表JSON 类型,更多对应关系可以查看此对照表:http://tool.oschina.neνcommons
在爬虫中,如果要构造POST 请求,需要使用正确的Content-Type ,并了解各种请求库的各个参数设置时使用的是哪种Content-Type ,不然可能会导致POST 提交后无法正常响应。
Cookie :也常用复数形式Cookies ,这是网站为了辨别用户进行会话跟踪而存储在用户本地的数据。它的主要功能是维持当前访问会话。
例如,我们输入用户名和密码成功登录某个网站后,服务器会用会话保存登录状态信息,后面我们每次刷新或请求该站点的其他页面时,会发现都是登录状态,这就是Cookies 的功劳。Cookies 里有信息标识了我们所对应的服务器的会话,每次浏览器在请求该站点的页面时,都会在请求头中加上Cookies 并将其发送给服务器,服务器通过Cookies 识别出是我们自己,并且查出当前状态是登录状态,所以返回结果就是登录之后才能看到的网页内容。*
请求体
请求体-般承载的内容是POST 请求中的表单数据,而对于GET 请求,请求体则为空。
五、SSL连接错误
http 超文本传输协议
https 用SSL层加密的超文本传输协议
当我呢执行爬虫传入一个访问请求时可能会遇到:

没有SSL层加密,被浏览器提示不安全
有些网站使用了https,还是会提示不安全,是因为此网站的CA证书是自行签发的,不被CA机构信任
爬取此类站点,要设置忽略证书选项,否则会提示SSL连接错误

六、HTML标签层级结构
在HTML 中,所有标签定义的内容都是节点,它们构成了一个HTML DOM 树。

七、选择器
CSS 选择器会根据不同的节点设置不同的样式规则,来定位节点

更多定位规则可查看:https://www.runoob.com/cssref/css-selectors.html

八、会话Cookies
Cookies的作用和维持

九、代理的基本原理
反反爬虫:

对于爬虫来说,由于爬虫爬取速度过快,在爬取过程中可能遇到同一个IP 访问过于频繁的问题,此时网站就会让我们输入验证码登录或者直接封锁IP ,这样会给爬取带来极大的不便

代理:实现IP 伪装,反反爬虫
使用代理隐藏真实的IP ,让服务器误以为是代理服务器在请求向己。这样在爬取过程中通过不断更换代理,就不会被封锁,可以达到很好的爬取效果

目录
相关文章
|
21天前
|
数据采集 存储 XML
Python爬虫:深入探索1688关键词接口获取之道
在数字化经济中,数据尤其在电商领域的价值日益凸显。1688作为中国领先的B2B平台,其关键词接口对商家至关重要。本文介绍如何通过Python爬虫技术,合法合规地获取1688关键词接口,助力商家洞察市场趋势,优化营销策略。
|
6天前
|
数据采集 JSON API
如何利用Python爬虫淘宝商品详情高级版(item_get_pro)API接口及返回值解析说明
本文介绍了如何利用Python爬虫技术调用淘宝商品详情高级版API接口(item_get_pro),获取商品的详细信息,包括标题、价格、销量等。文章涵盖了环境准备、API权限申请、请求构建和返回值解析等内容,强调了数据获取的合规性和安全性。
|
11天前
|
数据采集 存储 API
利用Python爬虫获取1688关键词接口全攻略
本文介绍如何使用Python爬虫技术合法合规地获取1688关键词接口数据,包括环境准备、注册1688开发者账号、获取Access Token、构建请求URL、发送API请求、解析HTML及数据处理存储等步骤,强调遵守法律法规和合理使用爬虫技术的重要性。
|
18天前
|
数据采集 JSON 开发者
Python爬虫京东商品详情数据接口
京东商品详情数据接口(JD.item_get)提供商品标题、价格、品牌、规格、图片等详细信息,适用于电商数据分析、竞品分析等。开发者需先注册账号、创建应用并申请接口权限,使用时需遵循相关规则,注意数据更新频率和错误处理。示例代码展示了如何通过 Python 调用此接口并处理返回的 JSON 数据。
|
22天前
|
XML 数据采集 数据格式
Python 爬虫必备杀器,xpath 解析 HTML
【11月更文挑战第17天】XPath 是一种用于在 XML 和 HTML 文档中定位节点的语言,通过路径表达式选取节点或节点集。它不仅适用于 XML,也广泛应用于 HTML 解析。基本语法包括标签名、属性、层级关系等的选择,如 `//p` 选择所有段落标签,`//a[@href='example.com']` 选择特定链接。在 Python 中,常用 lxml 库结合 XPath 进行网页数据抓取,支持高效解析与复杂信息提取。高级技巧涵盖轴的使用和函数应用,如 `contains()` 用于模糊匹配。
|
25天前
|
数据采集 XML 存储
构建高效的Python网络爬虫:从入门到实践
本文旨在通过深入浅出的方式,引导读者从零开始构建一个高效的Python网络爬虫。我们将探索爬虫的基本原理、核心组件以及如何利用Python的强大库进行数据抓取和处理。文章不仅提供理论指导,还结合实战案例,让读者能够快速掌握爬虫技术,并应用于实际项目中。无论你是编程新手还是有一定基础的开发者,都能在这篇文章中找到有价值的内容。
|
24天前
|
数据采集 JavaScript 前端开发
Python爬虫能处理动态加载的内容吗?
Python爬虫可处理动态加载内容,主要方法包括:使用Selenium模拟浏览器行为;分析网络请求,直接请求API获取数据;利用Pyppeteer控制无头Chrome。这些方法各有优势,适用于不同场景。
|
1月前
|
数据采集 监控 搜索推荐
python爬虫的基本使用
本文介绍了Python爬虫的基本概念及其广泛应用,包括搜索引擎、数据挖掘、网络监控、舆情分析和信息聚合等领域。通过安装`urllib`和`BeautifulSoup`库,展示了如何编写简单代码实现网页数据的抓取与解析。爬虫技术在大数据时代的重要性日益凸显,为各行业提供了高效的数据获取手段。
34 1
|
1月前
|
数据采集 存储 XML
Python爬虫定义入门知识
Python爬虫是用于自动化抓取互联网数据的程序。其基本概念包括爬虫、请求、响应和解析。常用库有Requests、BeautifulSoup、Scrapy和Selenium。工作流程包括发送请求、接收响应、解析数据和存储数据。注意事项包括遵守Robots协议、避免过度请求、处理异常和确保数据合法性。Python爬虫强大而灵活,但使用时需遵守法律法规。
|
1月前
|
数据采集 JavaScript 程序员
探索CSDN博客数据:使用Python爬虫技术
本文介绍了如何利用Python的requests和pyquery库爬取CSDN博客数据,包括环境准备、代码解析及注意事项,适合初学者学习。
76 0