随笔分类 - 爬虫
摘要:增量式爬虫通过爬虫程序监测某网站数据更新的情况,以便可以爬取到该网站更新出的新数据。增量式爬虫核心在于跳过之前已经爬去过的数据,也就是实现请求去重! 去重方法 将爬取过程中产生的url进行存储,存储在redis的set中。当下次进行数据爬取时,首先对即将要发起的请求对应的url在存储的url的set
阅读全文
摘要:分布式爬虫,可以让很多台电脑都使用同一个的爬虫程序,将爬虫分发得到多台电脑上,这样可以提高爬虫的速度,也就是分布式爬虫。 分布式爬虫需要专门的模块scrapy-redis,原生的scrapy框架无法实现分布式爬取,原因在于:(1)scrapy框架中五大核心组件中的调度器只归属于该项目,无法实现被分布
阅读全文
摘要:全站数据爬取的方式 1.通过递归的方式进行深度和广度爬取全站数据,可参考相关博文(全站图片爬取),手动借助scrapy.Request模块发起请求。 2.对于一定规则网站的全站数据爬取,可以使用CrawlSpider实现自动爬取。 CrawlSpider是基于Spider的一个子类。和蜘蛛一样,都是
阅读全文
摘要:scrapy项目中的middlewarse.py中间件 爬虫中间件:目前先不介绍 下载中间件(需要在settings.py中开启) 1 def process_request(self, request, spider): 2 #UA伪装 3 # request.headers['User-Agen
阅读全文
摘要:中国空气质量在线监测分析平台数据爬取分析 页面分析:确定url、请求方式、请求参数、响应数据 1.访问网站首页:https://www.aqistudy.cn/html/city_detail.html,通过抓包工具分析首页请求并没有获取到页面内的数据信息 2.因此可以确定页面内的数据是动态加载的,
阅读全文
摘要:项目目录 爬虫文件setuw.py 1 # -*- coding: utf-8 -*- 2 import time 3 from lxml.html.clean import etree 4 5 import scrapy 6 from meituwangPro.items import Meitu
阅读全文
摘要:增加并发: 默认scrapy开启的并发线程为32个,可以适当进行增加。在settings配置文件中修改CONCURRENT_REQUESTS = 100值为100,并发设置成了为100。 降低日志级别: 在运行scrapy时,会有大量日志信息的输出,为了减少CPU的使用率。可以设置log输出信息为I
阅读全文
摘要:scrapy自动发送请求 对start_urls列表中存储的起始url进行过请求的发送并没有通过手动实现,但是在parse函数中还是获取到了响应数据,这是因为爬虫文件中的爬虫类继承到了Spider父类中的start_requests(self)这个方法,该方法就可以对start_urls列表中的ur
阅读全文
摘要:scrapy五大核心组件 引擎(Scrapy)用来处理整个系统的数据流处理, 触发事务(框架核心) 调度器(Scheduler)用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. 可以想像成一个URL(抓取网页的网址或者说是链接)的优先队列, 由它来决定下一个要抓取的网址是什么,
阅读全文
摘要:数据持久化的两种方式:(1)基于终端指令的持久化存储;(2)基于管道的持久化存储 基于终端指令的持久化存储 在爬虫文件的parse方法中必须要return可迭代对象类型(通常为列表或字典等)的返回值,该返回值作为基于终端指令持久化指定文件的输出内容。 基于管道的持久化存储 (1)编写爬虫文件进行数据
阅读全文
摘要:Scrapy 是一个专业的、高效的爬虫框架,它使用专业的 Twisted 包(基于事件驱动的网络引擎包)高效地处理网络通信,使用 lxml(专业的 XML 处理包)、cssselect 高效地提取 HTML 页面的有效信息,同时它也提供了有效的线程管理。 安装scrapy pip3 install
阅读全文
摘要:2.1 selenium简介 2.2 selenium安装 2.3 selenium简单使用 2.3.1 selenium使用案例 2.3.2 selenium创建浏览器 2.3.3 selenium节点交互 2.3.4 selenium页面源码获取 2.3.5 selenium元素标签定位 2.3
阅读全文
摘要:移动端数据爬取 fiddler抓包工具 Fiddler是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一 。 它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功
阅读全文
摘要:asyncio异步携程模块 在python3.4之后新增了asyncio模块,可以帮我们检测IO(只能是网络IO【HTTP连接就是网络IO操作】),实现应用程序级别的切换(异步IO)。注意:asyncio只能发tcp级别的请求,不能发http协议。 - 异步IO:所谓「异步 IO」,就是你发起一个
阅读全文
摘要:爬虫的本质就是模拟client频繁请求server,获取响应数据,对响应数据进行解析处理。常规的串行方式同步阻塞执行,必须等待一个任务处理完后才能之后才能继续下一个,这样效率就非常低。最常用的聚焦爬虫对数据处理的IO操作(阻塞)相对密集,因此需要考虑使用异步方案解决。 1.同步串行:提交任务之后,只
阅读全文
摘要:登录图片验证码处理 超级鹰、云打码等API接口获取。 案例:古诗文网登录https://so.gushiwen.org/user/login.aspx?from=http://so.gushiwen.org/user/collect.aspx
阅读全文
摘要:代理proxies 数据采集过程中使用脚本发送请求,请求次数过于频繁,服务器监测到而采用一定的手段禁止此ip的请求,为了解决封ip的问题,我们用代理来处理这个问题。用第三方代理ip进行伪装访问,即使被封也不影响当前ip的使用,构建代理池,封了一个,其他的还可以用,这样就能缓解ip被封无法继续爬取的问
阅读全文
摘要:在获取到响应数据后,需要针对性的提取其中有用的部分,这也是采集数据最常见的方式聚焦网络爬虫。 数据解析四种方式: 1.正则表达式解析 2.xpath解析 3.bs4解析 4.pyquery解析 1.正则表达式解析(re模块) 案例:爬取糗事百科 糗图:https://www.qiushibaike.
阅读全文
摘要:requests是基于urllib3的一个用于发起http请求的库(中文文档)数据采集流程: 指定url>> 基于 requests模块发起请求>> 获取响应中的数据>> 数据解析>> 进行持久化存储 1.模块安装 pip install requests 2.requests之request请求
阅读全文
摘要:1.爬虫简介 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。 简单来说就是通过编写脚本模拟浏览器发起请求获取数据。 2.爬虫分类 (1)通用网络爬虫(General Purpose Web Crawle
阅读全文