爬虫学习
整理一下今天学习的内容,因为在以后的数据分析行业中会用到数据采集,所以打算花一段时间来学习爬虫。
可能是因为不太会,感觉很多网站的反爬机制都在不断的更新…
1.爬虫基本概念
- 爬虫-就是通过编写程序,让其模拟浏览器上网,然后去互联网上抓取数据的过程
- 模拟:浏览器就是一款天然的爬虫工具
- 抓取:抓取一整张数据,抓取一整张数据的局部数据
- 爬虫的分类
- 通用爬虫:
- 抓取一整张页面源码数据
- 聚焦爬虫:
- 抓取局部的指定的数据,是建立在通用爬虫基础之上的
- 增量式爬虫:
- 监测网站数据的更新情况,抓取网站最新更新出来的数据
- 分布式爬虫
- 通用爬虫:
- 反爬机制
- 1.robots协议:存在于服务器网站的一个文本协议,指名了该网站中哪些数据可以爬取哪些不可以爬取(有些网站可以查看到,比如jd.com, 有些网站我还不会看)
- 反反爬策略
1.request是常用的爬虫包,首先获取一个简单的html页面
import requests
url='https://www.baidu.com/'
response=requests.get(url=url)
page_text=response.text
with open('./taobao.html','w',encoding='utf-8') as fp:
fp.write(page_text)
2.异常的访问请求
- 在爬虫中正常的访问请求指的是通过真实的浏览器发起的访问请求
- 异常的访问请求,通过非浏览器发起的请求(爬虫程序模拟的请求)
- 正常的访问请求和异常访问请求判别机制
- 通过请求头中的User-Agent判别
- User-Agent:请求载体的身份标识
- 目前请求的载体可以是:浏览器,爬虫
- 反爬机制
- UA检测:网站后台会检测请求载体的身份标识(UA)是不是浏览器
- 是:正常访问请求
- 否:异常访问请求
- 反反爬策略
- UA伪装:将爬虫对应的请求载体身份标识伪装/篡改成浏览器的身份标识
- User-Agent: 根据每个人的浏览器进行查找,点击F12查看页面源代码,找到Network,User-Agent的位置在network的Headers下面,可以参考下图,圈起来的就是User-Agent
word=input('enter a word:')
url='https://www.baidu.com/'
#UA伪装
headers={
"User-Agent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'