python爬虫入门篇

什么是爬虫:
通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程。

爬虫的价值:
- 实际应用
抢票,购物,制作数据库。
- 就业:

爬虫所做的工作的结果,得到的是基础的数据。
基础数据之上,有哪些发挥用途的地方,就有哪些拓宽职业道路的地方。
在基础数据上往上走,数据处理、数据分析、数据展示(可视化或Web)、
数据应用(挖掘),都可以在这些领域继续向前。

爬虫在使用场景中的分类:
- 通用爬虫:
抓取系统重要组成部分。抓取的是一整张页面数据。
- 聚焦爬虫:
是建立在通用爬虫的基础之上。抓取的是页面中特定的局部内容。
- 增量式爬虫:
检测网站中数据更新的情况。只会抓取网站中最新更新出来的数据。

爬虫究竟是合法还是违法的?
- 在法律中是不被禁止
- 具有违法风险
- 善意爬虫 恶意爬虫

爬虫带来的风险可以体现在如下2方面:
- 爬虫干扰了被访问网站的正常运营
- 爬虫抓取了收到法律保护的特定类型的数据或信息

如何在使用编写爬虫的过程中避免进入局子的厄运呢?
- 时常的优化自己的程序,避免干扰被访问网站的正常运行
- 在使用,传播爬取到的数据时,审查抓取到的内容,如果发现了涉及到用户隐私
商业机密等敏感内容需要及时停止爬取或传播

robots.txt协议(盗亦有道):
君子协议。规定了网站中哪些数据可以被爬虫爬取哪些数据不可以被爬取。
http协议

  • 概念:就是服务器和客户端进行数据交互的一种形式。
    爬虫的矛与盾

反爬机制:
门户网站,可以通过制定相应的策略或者技术手段,防止爬虫程序进行网站数据的爬取。

反反爬策略:
爬虫程序可以通过制定相关的策略或者技术手段,破解门户网站中具备的反爬机制,从而可以获取门户网站中相关的数据。

常用请求头信息
- User-Agent:请求载体的身份标识
- Connection:请求完毕后,是断开连接还是保持连接

常用响应头信息
- Content-Type:服务器响应回客户端的数据类型

https协议:
- 安全的超文本传输协议

加密方式
- 对称秘钥加密
- 非对称秘钥加密

  • 证书秘钥加密

requests模块
- urllib模块
- requests模块
requests模块:
python中原生的一款基于网络请求的模块,功能非常强大,简单便捷,效率极高。

作用:
模拟浏览器发请求。

如何使用:(requests模块的编码流程)
- 指定url
- UA伪装
- 请求参数的处理
- 发起请求
- 获取响应数据

  • 持久化存储
    环境安装:
    pip install requests
    数据解析
    聚焦爬虫
    正则
    bs4
    xpath

xpath解析:最常用且最便捷高效的一种解析方式。通用性。

  • 环境的安装:
    - pip install lxml

    • xpath解析原理:

      • 1.实例化一个etree的对象,且需要将被解析的页面源码数据加载到该对象中。
      • 2.调用etree对象中的xpath方法结合着xpath表达式实现标签的定位和内容的捕获。
    • 如何实例化一个etree对象:from lxml import etree

      • 1.将本地的html文档中的源码数据加载到etree对象中:
        etree.parse(filePath)
      • 2.可以将从互联网上获取的源码数据加载到该对象中
        etree.HTML(‘page_text’)
      • xpath(‘xpath表达式’)

Xpath语法:
XPath 使用路径表达式来选取 XML 文档中的节点或节点集。节点是通过沿着路径 (path) 或者步 (steps) 来选取的。

路径表达式:
在这里插入图片描述
scrapy框架:

  • 什么是框架?

    • 就是一个集成了很多功能并且具有很强通用性的一个项目模板。
  • 如何学习框架?

    • 专门学习框架封装的各种功能的详细用法。
  • 什么是scrapy?

    • 爬虫中封装好的一个明星框架。功能:高性能的持久化存储,异步的数据下载,高性能的数据解析,分布式
  • scrapy框架的基本使用

    • 环境的安装:
      • mac or linux:pip install scrapy
      • windows:
        • pip install wheel
        • 下载twisted,下载地址为http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted
        • 安装twisted:pip install Twisted17.1.0cp36cp36mwin_amd64.whl
        • pip install pywin32
        • pip install scrapy
          测试:在终端里录入scrapy指令,没有报错即表示安装成功!

- scrapy数据解析

  • scrapy持久化存储

    • 基于终端指令:

      • 要求:只可以将parse方法的返回值存储到本地的文本文件中
      • 注意:持久化存储对应的文本文件的类型只可以为:‘json’, ‘jsonlines’, ‘jl’, ‘csv’, ‘xml’, ‘marshal’, 'pickle
      • 指令:scrapy crawl xxx -o filePath
      • 好处:简介高效便捷
      • 缺点:局限性比较强(数据只可以存储到指定后缀的文本文件中)
    • 基于管道:

      • 编码流程:
        • 数据解析
        • 在item类中定义相关的属性
        • 将解析的数据封装存储到item类型的对象
        • 将item类型的对象提交给管道进行持久化存储的操作
        • 在管道类的process_item中要将其接受到的item对象中存储的数据进行持 久化存储操作
        • 在配置文件中开启管道
      • 好处:
        • 通用性强。
  • 面试题:将爬取到的数据一份存储到本地一份存储到数据库,如何实现?
    - 管道文件中一个管道类对应的是将数据存储到一种平台
    - 爬虫文件提交的item只会给管道文件中第一个被执行的管道类接受
    - process_item中的return item表示将item传递给下一个即将被执行的管道类

- 五大核心组件
引擎(Scrapy)
用来处理整个系统的数据流处理, 触发事务(框架核心)
调度器(Scheduler)
用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. 可以想像成一个URL(抓取网页的网址或者说是链接)的优先队列, 由它来决定下一个要抓取的网址是什么, 同时去除重复的网址
下载器(Downloader)
用于下载网页内容, 并将网页内容返回给蜘蛛(Scrapy下载器是建立在twisted这个高效的异步模型上的)
爬虫(Spiders)
爬虫是主要干活的, 用于从特定的网页中提取自己需要的信息, 即所谓的实体(Item)。用户也可以从中提取出链接,让Scrapy继续抓取下一个页面
项目管道(Pipeline)
负责处理爬虫从网页中抽取的实体,主要的功能是持久化实体、验证实体的有效性、清除不需要的信息。当页面被爬虫解析后,将被发送到项目管道,并经过几个特定的次序处理数据。

架构如下图所示:
在这里插入图片描述
在这里插入图片描述

  • 创建一个工程:scrapy startproject xxxPro
    • cd xxxPro
    • 在spiders子目录中创建一个爬虫文件
      • scrapy genspider spiderName www.xxx.com
    • 执行工程:
      • scrapy crawl spiderName
        在这里插入图片描述
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值