经历了好几个小爬虫项目的“摧残”后,我想着不能白做,于是四处搜集和学习,便有了这篇笔记文章。
目录
一、定义
什么是爬虫和反爬虫
- 爬虫:使用任何技术手段,批量获取网站信息的一种方式。
- 反爬虫:使用任何技术手段,阻止别人批量获取自己网站信息的一种方式。
Headers相关概念
- host:提供了主机名及端口号
- Referer 提供给服务器客户端从那个页面链接过来的信息(有些网站会据此来反爬)
- Origin:Origin字段里只包含是谁发起的请求,并没有其他信息.(仅存于post请求)
- User agent: 发送请求的应用程序名(一些网站会根据UA访问的频率间隔时间进行反爬)
- proxies: 代理,一些网站会根据ip访问的频率次数等选择封ip.
- cookie: 特定的标记信息,一般可以直接复制,对于一些变化的可以选择构造.(session=requests.session()自动把cookie信息存入response对象中)
一种好用的爬虫
- 大型爬虫都用Scrapy框架,这个框架我没学过,但是很难。
- 还有一个简单好用的,那就是Python的Selenium包,这是一个模拟浏览器的程序,可以在其中编辑形成爬取程序,由于模拟浏览器,有效的避过了UA检查,也可以读取cookies,还由于加载了页面,不用考虑Ajax动态网页的问题。