python之爬虫入门知识

python之爬虫入门知识

一、爬虫是什么?

  • 就是可以快速的根据我们的需求将网站中的数据爬取出来,简单的来说就是数据采集,数据挖掘。

  • 名称( spider ):又称网络蜘蛛、蠕虫、网络蚂蚁、网络机器人等。

  • 可以自动化浏览网络中的信息,当然浏览信息的时候需要按照我们的规定的规则运行,这些规则称之为网络爬虫算法,爬虫就是可以进行互联网信息的自动化检索。

二、爬虫是怎样工作的?

2.1 爬虫爬取数据之前的准备工作
  • 第一步:准备好一个Pycharm环境。

  • 第二步:在pycharm的库中,使用pip包工具安装requests、parsel模块。

    • pip install requests
    • pip install parsel
  • 补充:scrapy - redis分布策略。

2.2 爬虫的工作流程
  • 第一步:请求网址获取相应结果。

  • 第二步:解析响应结果中我们需要的那部分。

  • 第三步:提取数据,也称解析数据,将所需的数据链接取出来。

    • 非结构化数据 网页源代码 css/xpath/re
    • 结构化数据 json数据 字典取值/re
  • 第四步:数据持久化,简单来说就是保存数据。

    • 即将从浏览器获得的数据通过文件的读写操作写入本地,可以看我在python学习笔记中发布的文本文件的读和写步骤。

三、爬虫涉及的知识点

  • a) 请求:requestsseleniumurllib等。

  • b) 解析、抓取数据:BeautifulSoup4、lxml、正则表达式。

  • c) HTML、CSS、JavaScript解析基础。

  • d) 反爬虫机制 --> 反反爬虫应对措施。

  • e) 字符串类型和字节码类型的网页源代码响应格式:

    • 字符串类型的网页源代码:text

      print(response.text)
      
    • 字节码(二进制)类型网页源代码:content

      print(reponse.content)
      
  • f) 静态页面:网页一经发布,网页中的内容不经过人为(也可能是固定的脚本程序代替)修改,是永远不会变的,简单来说就是你能够直接在网页源代码里面找到所有你想要的内容。

  • g) 动态页面:指页面中的数据使用JavaScript进行动态加载(从别的地方引入过来,即数据本来不存在,只是临时显示。)找不到或者只能找到部分的内容。

  • h) 状态码:百度百科状态码的介绍是:

    • 是用以表示网页服务器超文本传输协议响应状态的3位数字代码。它由 RFC 2616 规范定义的,并得到 RFC 2518、RFC 2817、RFC 2295、RFC 2774 与 RFC 4918 等规范扩展。所有状态码的第一个数字代表了响应的五种状态之一。所示的消息短语是典型的,但是可以提供任何可读取的替代方案。 除非另有说明,状态码是HTTP / 1.1标准(RFC 7231)的一部分。
    • HTTP状态码的官方注册表由互联网号码分配局(Internet Assigned Numbers Authority)维护。
    • HTTP状态码分为五类:消息、成功重定向请求错误,服务器错误,这里直接给出博主汇总好的所有状态码图表:在这里插入图片描述
  • 常用到的是:

    • 200:请求成功
    • 403:爬虫被服务器拒绝
    • 404:网页资源丢失
    • 500:服务器崩溃

四、爬虫的风险及实际体现

  • 爬虫究竟是合法还是违法的?
    • 在法律中是不被禁止的。
    • 具有违法的风险。
    • 爬虫又分为善意爬虫(网站服务器自带的爬虫)、恶意爬虫两类。
  • 爬虫的风险体现在:
    • 爬虫干扰了被访问网站的正常运营。
    • 爬虫抓取了收到法律保护的特定类型的数据或信息。
  • 如何避免犯罪或者违法的可能性
    • 时常优化自己的程序,避免干扰被访问网站的正常运行。
    • 在使用、传播爬取到的数据时,要审查抓取到的内容,如果涉及到用户个人隐私和商业机密等敏感内容时,要立刻停止爬取或传播。

五、爬虫的分类及反爬机制

5.1 爬虫在使用场景中分为三类:
  • 通用爬虫
    • 抓取系统重要组成部分,抓取的是一整张页面数据
  • 聚焦爬虫
    • 是建立在通用爬虫的基础上,抓取的是页面中特定的局部内容
  • 增量式爬虫
    • 检测网站中数据更新的情况,只会抓取网站中最新更新出来的数据
5.2 反爬机制介绍
  • 反爬机制的概念:即门户网站,可以通过制定相应的策略或技术手段,防止爬虫程序进行网站数据的爬取
  • robots.txt(君子)协议:对网站中一些可以爬取的数据做了一些明确的规定。
5.3 反反爬虫策略
  • 反反爬虫策略:爬虫程序可以通过制定相关的策略或技术手段,破解门户网站中具备的反爬机制,从 而可以获取门户网站中相关的数据。

六、HTTP与HTTPS协议知识补充

6.1 HTTP协议
  • 就是服务器和客户端进行数据交互的一种形式,属于明文传输。
  • URL:描述了具体的所需网络数据资源所在的网址链接。URL = ’ 网络地址 '。
  • 具体的详细协议可以参考CSDN博客:详解——HTTP协议
  • 补充:HTTP协议详解
6.2 常用请求头信息
  • headers:HTTP网络协议的请求头,字典格式,里边放置User-Agent。
  • -User-Agent:请求载体的身份标识,常用来模拟浏览器,是用来应对反爬的一种措施。在网页中右键单击检查,在右侧的开发者工具栏找到network选项,在底下名称栏点第一个,在标头里最后可以看到User-Agent的地址
6.3 常用响应头信息
  • response:用来接收服务器端传给客户端的数据。
6.4 HTTPS协议
  • 安全的超文本传输协议,使用的是证书秘钥加密的形式。
  • 与HTTP协议相比,引入了一个加密层,称为SSL/TLS,涉及的加密操作包括对称加密和非对称加密两种操作方式。
  • 补充:提及到HTTPS协议,就不得不去详细了解HTTPS的加密原理
6.5 常用的三种加密方式
  • 对称秘钥加密:使用同一个密钥可以进行加密也可以进行解密。
  • 非对称秘钥加密:有两个密钥,分别是公钥和私钥,其中一个用来加密,另一个用来解密。
  • 证书秘钥加密:网站在使用HTTPS前,需要向CA机构申领一份数字证书,数字证书里含有证书持有者信息公钥信息等。服务器把证书传输给浏览器,浏览器从证书里获取公钥就行了。

七、爬虫可以用来做什么?

  1. 采集数据
  2. 批量点赞
  3. 批量评论
  4. 关注。。。
  5. 商品抢购
  6. 抢购车票

八、爬虫中的requests模块如何使用?

8.1 首先要安装requests模块
	pip install requests

在pycharm中使用pip包工具安装模块。

8.2 requests的使用,导入requests模块
import requests
8.3 接收服务器端向客户端发送的信息。
# 最基本的GET请求可以直接用get方法
response = requests.get(url)

# 也可以这么写
response = requests.Request(url)

其中url在前边有讲到,是网络链接地址,当然为了做好反爬措施,我们通常会在前面加上headers,用来模拟浏览器查看数据,就像下面这样:

headers = {
'User - Agent': '客户端服务器地址'
}

客户端服务器地址,可以在任意网络浏览器中查看,鼠标右键检查,点击network、找到最底端就可以看到User-Agent了,当然如果你有心的话,还可以了解当前服务器是采用get 和 post 之中哪一种传输方式了,还可以清楚当前服务器的状态码,来作为适不适合爬取数据的一个判断条件。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

stiinput

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值