目录
前言
网络爬虫
网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。
网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。爬虫的主要目的是将互联网上的网页下载到本地形成一个或多个互联网内容的镜像备份。
scrapy框架
Scrapy是适用于Python的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。
Scrapy 常应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。通常我们可以很简单的通过 Scrapy 框架实现一个爬虫,抓取指定网站的内容或图片。
scrapy架构
- Scrapy Engine(引擎):负责Spider、ItemPipeline、Downloader、Scheduler中间的通讯,信号、数据传递等。
- Scheduler(调度器):它负责接受引擎发送过来的Request请求,并按照一定的方式进行整理排列,入队,当引擎需要时,交还给引擎。
- Downloader(下载器):负责下载Scrapy
Engine(引擎)发送的所有Requests请求,并将其获取到的Responses交还给Scrapy
Engine(引擎),由引擎交给Spider来处理。 - Spider(爬虫):它负责处理所有Responses,从中分析提取数据,获取Item字段需要的数据,并将需要跟进的URL提交给引擎,再次进入Scheduler(调度器)。
- Item Pipeline(管道):它负责处理Spider中获取到的Item,并进行进行后期处理(详细分析、过滤、存储等)的地方。
- Downloader Middlewares(下载中间件):一个可以自定义扩展下载功能的组件。
- Spider Middlewares(Spider中间件):一个可以自定扩展和操作引擎和Spider中间通信的功能组件。
使用方法
以爬取豆瓣图书信息为例。。。。
创建scrapy爬虫
1、建立一个scrapy工程
2、在工程中产生一个scrapy爬虫
3、配置爬虫
4、运行爬虫
scrapy爬虫配置(setting.py)
1.robots协议
2、header修改
scrapy爬虫配置(item.py)
生成对象
豆瓣图书页面解析
编程标签(subject_list)
1、title,link
2、author,price
3.desc
scrapy+xpath
1、爬取当前页面内容
2、翻页
文件保存(pipeline.py)
IP代理
有些网站会对频繁访问的IP地址进行封禁,时间不等。因此我们可以选择使用代理来代替我们真正的IP,从而保证爬取进程的顺利。
代理池(https://www.kuaidaili.com/free/)
代理池
1、获取当前页面代理IP
2、检测IP是否能够使用
3、保存正确IP
附完整项目地址:链接:https://pan.baidu.com/s/1VJsh8u5GrIlkqyJedHZ3yQ
提取码:2bzt