随笔分类 - 爬虫
摘要:增量式 概念:检测网站数据更新的情况。爬取到最新更新出来的数据。 核心:去重 记录表:需要持久化存储。redis中set 记录爬取过的信息 爬取过的电影详情页的url:对应的是深度爬取 数据指纹:对应的非深度爬取(一张页面的数据更新) 数据指纹:一组数据的唯一标识 代码实现: pipelines.p
阅读全文
摘要:分布式 概念:可以使用多台电脑组件一个分布式机群,让其执行同一组程序,对同一组网络资源进行联合爬取。 原生的scrapy是无法实现分布式 调度器无法被共享 管道无法被共享 基于 scrapy+redis(scrapy&scrapy redis组件)实现分布式 组件作用: 提供可被共享的管道和调度器
阅读全文
摘要:CrawlSpider:Spider的一个子类 实现全站数据爬取 实现流程:在终端中执行 链接提取器 可以根据指定的规则(allow=正则)进行链接的提取 Rule规则解析器 将链接提取器提取到的链接进行请求发送,然后根据指定的规则(callback)进行数据解析 follow=True:将链接提取
阅读全文
摘要:中间件的使用 作用:拦截所有的请求和响应 拦截请求:process_request拦截正常的请求,process_exception拦截异常的请求 篡改请求的头信息 代理 注意: ,return request的作用是将修正后的请求重新发送 拦截响应 以爬取网易新闻为例 篡改响应数据 不满足需求的响
阅读全文
摘要:scrapy的大文件下载(基于一种形式的管道类实现) 爬虫类中将解析到的图片地址存储到item,将item提交给指定的管道 在管道文件中导包: 基于 父类,自定义一个管道类 重写管道类中的如下三个方法: settings.py文件中 爬虫文件
阅读全文
摘要:scrapy框架的使用 基于管道的持久化存储的编码流程 在爬虫文件中数据解析 将解析到的数据封装到一个叫做 类型的对象 将 类型的对象提交给 负责调用 的方法接收 ,然后进行某种形式的持久化存储 在配置文件中开启管道 注意事项: 全栈数据的爬取 手动请求的发送 总结:什么时候用yield 如何发送p
阅读全文
摘要:scrapy异步的爬虫框架 异步的爬虫框架 高性能的数据解析,持久化存储,全栈数据的爬取,中间件,分布式 框架:就是一个集成好了各种功能且具有很强通用性的一个项目模板。 环境安装: Linux: Windows: 基本使用 新建一个工程: 前提需要将 这个文件放在项目目录下 settings.py:
阅读全文
摘要:selenium 概念:基于浏览器自动化的一个模块。 环境的安装: pip install selenium selenium和爬虫之间的关联: 模拟登录 便捷的捕获到动态加载的数据(重点) 特点:可见及可得 缺点:效率低 selenium的具体使用 准备浏览器的驱动程序:http://chrome
阅读全文
摘要:开启线程池: 线程池 asyncio 特殊的函数 协程 任务对象 任务对象绑定 事件循环 from multiprocessing.dummy import Pool map(func,alist): 可以让func回调函数处理alist中的每一个列表元素,这个处理的过程是基于异步。 In [7]:
阅读全文
摘要:爬取js加密和混淆的例子 url:https://www.aqistudy.cn/html/city_detail.html 分析: 1.点击不同气象指标的选项卡,发现没有相关的请求发送,说明当页面加载出来的时候,所有的气象数据已经加载完毕。 2.数据是否为动态加载 数据是动态加载出来的 3.修改查
阅读全文
摘要:对 js加密数据进行爬取和解密 分析: 爬取的数据是动态加载 并且我们进行了抓包工具的全局搜索,没有查找到结果 意味着:爬取的数据从服务端请求到的是加密的密文数据 页面每10s刷新一次,刷新后发现数据更新,但是浏览器地址栏的url没有变,说明加载出的数据是由ajax请求到的。 动态加载出来的数据是由
阅读全文
摘要:数据解析 re bs4 xpath pyquery(作业) 什么是数据解析,数据解析可以干什么? 概念:就是将一组数据中的局部数据进行提取。 作用:用来实现聚焦爬虫 数据解析的通用原理 问题:html展示的数据可以存储在哪里? 标签之中 属性中 1.标签定位 2.取文本或者取属性 正则实现的数据解析
阅读全文
摘要:requests模块的基本使用 基于网络请求的模块。 环境的安装:pip install requests 作用:模拟浏览器发起请求 分析requests的编码流程: 1.指定url 2.发起了请求 3.获取响应数据 4.持久化存储 需求:爬取搜狗首页的页面源码数据 需求:简易的网页采集器 上述代码
阅读全文