Python爬虫—-爬虫基础-python网络爬虫基础教程

490次阅读
没有评论


Python爬虫—-爬虫基础


目录:

​​ 一、网络爬虫​​​     

  ​​1.什么是爬虫​​  

    ​​2.爬虫的分类​​​     

  ​​3.爬虫基本流程​​​​​​

​​二、​​​​HTTP协议​​​​​​

​​三、​​​​Robots协议​​​​     

  ​​1.作用​​​  

   ​​2.形式​​​  

   ​​3.基本语法​​​     

 ​​4.Robots协议的遵守​​​  

     ​​5.建议性遵守​​​  

     ​​6.爬虫规模的分类​​​

      ​​7.网络爬虫引发的问题​​​    

   ​​8.网络爬虫的限制​​


一、网络爬虫

1.什么是爬虫

爬虫(spider,又网络爬虫),是指向网站/网络发起请求,获取资源后分析并提取有用数据的程序。从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的HTML代码/JSON数据/二进制数据(图片、视频) 爬到本地,进而提取自己需要的数据,存放起来使用。

2.爬虫的分类

1.批量型网络爬虫:

限制抓取的属性,包括抓取范围、特定目标、限制抓取时间、限制数据量以及限制抓取页面,总之明显的特征就是受限;

2.增量型网络爬虫(通用爬虫):

与前者相反,没有固定的限制,无休无止直到抓完所有数据。这种类型一般应用于搜索引擎的网站或程序;

3.垂直网络爬虫(聚焦爬虫):

简单的可以理解为一个无限细化的增量网络爬虫,可以细致的对诸如行业、内容、发布时间、页面大小等很多因素进行筛选。

这些网络爬虫的功能不一,使用方法也不同。例如谷歌、百度搜索就是典型的增量型爬虫,提供大而全的内容来满足世界各地的用户。另外像天猫、京东很多店铺都需要屏蔽外来的抓取,这时就需要爬虫根据一些低级域名的链接来抓取他们进行排名。后来随着爬虫使用越来越灵活,很多网站都使用多个爬虫同步进行抓取。例如现下很多视频网站,都是先通过一般爬虫或者人工批量抓取内容,然后给用户一些可选项,让客户自己给聚焦爬虫划定范围最后找到匹配度足够高的内容,整个过程极大的降低了资源和时间的消耗。相反如果这些内容全部用聚焦爬虫来完成,不仅要消耗大量的网络资源,而且会延长搜索时间时间,影响客户体验。

3.爬虫基本流程

用户获取网络数据的方式:
方式1:浏览器提交请求—>下载网页代码—>解析成页面

方式2:模拟浏览器发送请求(获取网页代码)->提取有用的数据->存放于数据库或文件中

爬虫要做的就是方式2

Python爬虫----爬虫基础-python网络爬虫基础教程


1.发起请求

使用http库向目标站点发起请求,即发送一个Request Request包含:请求头、请求体等
Request模块缺陷:不能执行JS和CSS 代码

2.获取响应内容(以及常见的状态码)

如果服务器能正常响应,则会得到一个Response
Response包含:html,json,图片,视频等

Python爬虫----爬虫基础-python网络爬虫基础教程


Python爬虫----爬虫基础-python网络爬虫基础教程

3.解析内容

解析html数据:正则表达式(RE模块)、xpath(主要使用)、beautiful soup、css
解析json数据:json模块
解析二进制数据:以wb的方式写入文件

4.保存数据

数据库(MySQL,Mongdb、Redis)或 文件的形式。

​​返回顶部​​


二、HTTP协议:

Python爬虫----爬虫基础-python网络爬虫基础教程


1.HTTP,Hypertext Transfer Protocol

超文本传输协议,是基于“请求与响应”模式的、无状态的应用层协议。
基于“请求与响应”模式是指用户作出请求,服务器作出响应的模式;
无状态是指在多次请求之间无关联;
应用层协议是指该协议应用在TCP协议之上。

2. HTTP协议采用URL作为定位网络资源的标识。
​​​URL格式:http://host[:port][path]​​

-host:合法的Internet主机域名或IP地址
-[:port]:端口号,可以省略,默认的缺省端口号为80
-[path]:请求的资源的路径

URL的理解:
-URL是通过HTTP协议寻取资源的Internet路径,一个URL对应一个数据资源

3.HTTP协议对资源的操作:

GET ——- 请求获取该URL位置的资源
HEAD —– 对于请求的响应消息报告,获取该资源的头部信息
POST —– 请求向URL位置的资源后附加新的数据
PUT ——–请求向URL位置存储一个资源,覆盖原有的信息数据
PATCH —-请求局部更新URL位置的资源,即改变该处资源的部分内容
DELETE –请求删除URL位置存储的资源

4.对于PUT与PATCH的理解:

假设URL位置有组数据UserInfo(UserID、UserName等)
需求:用户只修改UserName,其他信息不变
*PATCH:仅需向URL提交UserName的局部更新请求(优势:节省网络带宽–网络带宽是指在单位时间内能传输的数据量。)
*PUT:必须将该UserInfo包含的所有字段一并提交,未提交的字段按照空白覆盖原有信息数据。

​​返回顶部​​


三、Robots协议

-Robots Exclusion Standard 网络爬虫排除标准

1.作用

网站告知网络爬虫那些页面可以爬取,那些不可以爬取

2.形式

在网站的根目录下的robots.txt文件

3.基本语法

  • *代表所有
  • / 代表根目录
  • User-agent 代表爬虫类型
  • Disallow 代表不被允许爬取的文件

4.Robots协议的遵守

网络爬虫:自动或人工识别robots.txt,在进行内容爬取。
约束性:Robots协议是建议但非约束性,网络爬虫可以不遵守,但存在法律风险。

5.建议性遵守:

爬取网页、玩转网页:

访问量小:可以遵守~
访问量大:建议遵守!

爬取网站或系列网站:

非商业且偶尔:建议遵守!
商业利益:必须遵守!!!

爬取全网:

必须遵守!!!

6.爬虫规模的分类:

爬取网页、玩转网页:

小规模,数据量小,爬取速度不敏感 —- Requests库

爬取网站或系列网站:

中规模,爬取规模较大,爬取速度敏感 —- Scrapy库

爬取全网:

大规模,搜索引擎,爬取速度关键 —- 定制开发

7.网络爬虫引发的问题:

受限于编写水平和目的,网络爬虫将会为web服务器到老巨大的在资源开销。 —-骚扰问题
服务器上的数据有产权归属,网络爬虫获取数据后牟利将会带来法律风险。 —-法律问题
网络爬虫可能具备简单访问控制能力,获得被保护数据从而泄露个人隐私。 —-隐私问题

8.网络爬虫的限制

1.来源审查:判断User-Agent进行限制

检查来访问HTTP协议头的User-Agent域,只响应浏览器或友好爬虫的访问

2.发布公告:Robots协议

告知所有爬虫网站的爬取策略,要求爬虫遵循。

​​返回顶部​​



神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试

相关文章:

版权声明:Python教程2022-11-01发表,共计2662字。
新手QQ群:570568346,欢迎进群讨论 Python51学习