爬虫基础学习
爬虫初步认识
主流实现爬虫的语言
java
python
php
c
c++
爬虫的分类
通用爬虫
通用爬虫是搜索引擎(Baidu、Google、Yahoo等)“抓取系统”的重要组成部分。主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份。 简单来讲就是尽可能的;把互联网上的所有的网页下载下来,放到本地服务器里形成备分,在对这些网页做相关处理(提取关键字、去掉广告),最后提供一个用户检索接口。
聚焦爬虫
聚焦爬虫是根据指定的需求抓取网络上指定的数据。例如:获取豆瓣上电影的名称和影评,而不是获取整张页面中所有的数据值。
增量式爬虫
增量式是用来检测网站数据更新的情况,且可以将网站更新的数据进行爬取
反爬机制
门户网站通过制定相应的策略和技术手段,防止爬虫程序进行网站数据的爬取
比如:
robots协议,
UA身份认证(User-Agent:请求载体的身份认证,如果被目标门户网站检测出请求的载体身份不明就可能被认定为爬虫程序从而请求失败)
反反爬策略
爬虫程序通过相应的策略和技术手段,破解门户网站的反爬虫手段,从而爬取到相应的数据
比如:针对UA检测的UA伪装,通过修改/伪装爬虫请求的User-Agent来破解UA检测
常见爬虫协议
robots.txt :规定了哪些可以爬取,哪些严禁爬取(robots协议可以作为一种反爬手段)
网络请求模块(正式开始学习)
urllib模块
requests模块(很重要)
作用:模拟浏览器发送请求
如何使用:
- 指定url
- 发起请求
- 获取响应数据
- 持久化存储
数据解析
- 原理:1.标签定位 2.提取标签,标签属性中存储的数据
正则解析
进行正则匹配
bs4
- 原理:实例一个beautifulsoup对象,然后调用对象相关属性或方法定位标签和提取数据
- 环境安装:bs4,lxml
- 实例化对象
from bs4 import Beautifulsoup
soup = Beautifulsoup(目标原始数据,'lxml')
- 属性和方法
soup.tagName或者soup.find(tagName) #取html标签
soup.find(tagName,class_="xxxx") #取html标签和class属性
soup.find_all() #找到所有符合要求的标签
soup.select() #选择器指定内容:标签选择器(a)、类选择器(.)
#id选择器(#)、层级选择器
#返回列表