什么是爬虫?
通过编写程序模拟浏览器让其去互联网上获取数据
爬虫的分类:
1. 通用爬虫:爬取的是一整张网页源码数据
2.聚集爬虫:爬取网页中局部的内容,聚集是建立在通用爬虫之上
3.增量式爬虫:用来检测网站数据更新情况,从而爬取到网站找中最新出来的数据。
反爬机制:对应的载体是门户网站,网站中可以指定相关的机制防止爬虫程序对其网站数据爬取
反反爬机制:对应的载体是爬虫程序,爬虫程序可以破解网站采取的反爬机制,从而使得爬虫可以获取数据。
第一个反爬机制:robots.txt协议
-User-Agent: 请求载体的身份标识
特征:文本协议,防君子不防小人
requests模块
环境的安装: pip install requests
作用:用于模拟浏览器发起网络请求
requests的编码流程:
1.指定url
2.发起请求
3.获取响应数据
4.持久化存储
参数动态化:get(params)
UA 伪装:get(headers)
UA检测被应用到了绝大数网站中。
动态加载的数据:
- 是由另一个单独的请求请求到的数据
- 特性:可见非可得
-如何鉴定一个网站中的相关数据是否为动态加载的数据
-使用抓包工具做局部搜索
-可以搜到就不是动态加载的,否则就不是
-如何鉴定出数据为动态加载,如何捕获动态加载的数据?
-在抓包工具中做全局搜索,从定位到的数据包中提取url请求参数,对其进行请求发送即可
数据解析:
-正则表达式
-bs4
-xpath
-数据解析的通用原理
- 概念:将爬取到的网页源码中指定的内容进行提取
- 作用:用来实现聚焦爬虫(将页面中局部数据进行提取)
-原理:
-页面中数据是 存储在哪里的
-存在于某个标签之中
-存在于标签的属性中
- 1.定位标签
- 2. 数据的提取
- 正则表达式实现的数据解析
- 定位标签
- 数据的提取
- bs4解析
-解析原理
- 1. 实例化一个BeautifulSoup的对象,然后把即将被解析的页码数据加载到该对象中
- 2. 调用该对象中相关的方法和属性实现标签定位和数据提取
-BeautifulSoup对象实例化
- BeautifulSoup(fp,‘lxml‘) :将本地存储的html文档中的数据进行解析
-BeautifulSoup(page_text,‘lxml‘) :将互联网请求到的页面源码进行解析
-lxml:一种解析器
-环境安装
pip install bs4
pip install lxml
- 标签定位
原文:https://www.cnblogs.com/guniang/p/11573828.html