随笔分类 -  爬虫

摘要:scrapy中selenium的应用 引入 在通过scrapy框架进行某些网站数据爬取的时候,往往会碰到页面动态数据加载的情况发生,如果直接使用scrapy对其url发请求,是绝对获取不到那部分动态加载出来的数据值。但是通过观察我们会发现,通过浏览器进行url请求发送则会加载出对应的动态加载出的数据 阅读全文
posted @ 2019-01-15 13:45 小学弟- 阅读(140) 评论(0) 推荐(0) 编辑
摘要:爬虫之图片懒加载技术、selenium和PhantomJS 图片懒加载 selenium phantomJs 谷歌无头浏览器 一.图片懒加载 什么是图片懒加载? 案例分析:抓取站长素材http://sc.chinaz.com/中的图片数据 #!/usr/bin/env python # -*- co 阅读全文
posted @ 2019-01-11 20:19 小学弟- 阅读(277) 评论(0) 推荐(0) 编辑
摘要:scrapy框架之递归解析和post请求 1.递归爬取解析多页页面数据 - 需求:将糗事百科所有页码的作者和段子内容数据进行爬取切持久化存储 - 需求分析:每一个页面对应一个url,则scrapy工程需要对每一个页码对应的url依次发起请求,然后通过对应的解析方法进行作者和段子内容的解析。 实现方案 阅读全文
posted @ 2019-01-11 20:14 小学弟- 阅读(142) 评论(0) 推荐(0) 编辑
摘要:scrapy框架的日志等级和请求传参 一.Scrapy的日志等级 - 在使用scrapy crawl spiderFileName运行程序时,在终端里打印输出的就是scrapy的日志信息。 - 日志信息的种类: ERROR : 一般错误 WARNING : 警告 INFO : 一般的信息 DEBUG 阅读全文
posted @ 2019-01-11 20:09 小学弟- 阅读(226) 评论(0) 推荐(0) 编辑
摘要:基于scrapy-redis两种形式的分布式爬虫 基于redis分布式部署 scrapy框架是否可以自己实现分布式? - 不可以。原因有二。 其一:因为多台机器上部署的scrapy会各自拥有各自的调度器,这样就使得多台机器无法分配start_urls列表中的url。(多台机器无法共享同一个调度器) 阅读全文
posted @ 2019-01-11 20:07 小学弟- 阅读(180) 评论(0) 推荐(0) 编辑
摘要:爬虫的UA池和代理池 一.下载中间件 先祭出框架图: 下载中间件(Downloader Middlewares) 位于scrapy引擎和下载器之间的一层组件。 - 作用: (1)引擎将请求传递给下载器过程中, 下载中间件可以对请求进行一系列处理。比如设置请求的 User-Agent,设置代理等 (2 阅读全文
posted @ 2019-01-11 20:04 小学弟- 阅读(542) 评论(0) 推荐(0) 编辑
摘要:爬虫与反爬虫大战 爬虫与发爬虫的厮杀,一方为了拿到数据,一方为了防止爬虫拿到数据,谁是最后的赢家? 重新理解爬虫中的一些概念 爬虫:自动获取网站数据的程序反爬虫:使用技术手段防止爬虫程序爬取数据误伤:反爬虫技术将普通用户识别为爬虫,这种情况多出现在封ip中,例如学校网络、小区网络再或者网络网络都是共 阅读全文
posted @ 2019-01-11 20:01 小学弟- 阅读(377) 评论(0) 推荐(0) 编辑
摘要:scrapy分布式原理 关于Scrapy工作流程回顾 Scrapy单机架构 上图的架构其实就是一种单机架构,只在本机维护一个爬取队列,Scheduler进行调度,而要实现多态服务器共同爬取数据关键就是共享爬取队列。 分布式架构 我将上图进行再次更改 这里重要的就是我的队列通过什么维护?这里一般我们通 阅读全文
posted @ 2019-01-11 19:53 小学弟- 阅读(253) 评论(0) 推荐(0) 编辑
摘要:scrapy的中间件Download Middleware实现User-Agent随机切换 总架构理解Middleware 通过scrapy官网最新的架构图来理解: 从图中我们可以看出,在spiders和ENGINE提及ENGINE和DOWNLOADER之间都可以设置中间件,两者是双向的,并且是可以 阅读全文
posted @ 2019-01-11 19:47 小学弟- 阅读(650) 评论(0) 推荐(0) 编辑
摘要:scrapy框架中Download Middleware用法 Downloader Middleware处理的过程主要在调度器发送requests请求的时候以及网页将response结果返回给spiders的时候,所以从这里我们可以知道下载中间件是介于Scrapy的request/response处 阅读全文
posted @ 2019-01-11 19:42 小学弟- 阅读(391) 评论(0) 推荐(0) 编辑
摘要:scrapy框架持久化存储 基于终端指令的持久化存储 基于管道的持久化存储 1.基于终端指令的持久化存储 保证爬虫文件的parse方法中有可迭代类型对象(通常为列表or字典)的返回,该返回值可以通过终端指令的形式写入指定格式的文件中进行持久化操作。 执行输出指定格式进行存储:将爬取到的数据写入不同格 阅读全文
posted @ 2019-01-11 19:38 小学弟- 阅读(149) 评论(0) 推荐(0) 编辑
摘要:<!--done--> scrapy框架中item pipeline用法 当Item 在Spider中被收集之后,就会被传递到Item Pipeline中进行处理 每个item pipeline组件是实现了简单的方法的python类,负责接收到item并通过它执行一些行为,同时也决定此Item是否继 阅读全文
posted @ 2019-01-10 20:11 小学弟- 阅读(1323) 评论(0) 推荐(0) 编辑
摘要:scrapy框架中Spiders用法 Spider类定义了如何爬去某个网站,包括爬取的动作以及如何从网页内容中提取结构化的数据 总的来说spider就是定义爬取的动作以及分析某个网页 工作流程分析 以初始的URL初始化Request,并设置回调函数,当该request下载完毕并返回时,将生成resp 阅读全文
posted @ 2019-01-10 19:49 小学弟- 阅读(337) 评论(0) 推荐(0) 编辑
摘要:scrapy框架中选择器的用法 Scrapy提取数据有自己的一套机制,被称作选择器(selectors),通过特定的Xpath或者CSS表达式来选择HTML文件的某个部分Xpath是专门在XML文件中选择节点的语言,也可以用在HTML上。CSS是一门将HTML文档样式化语言,选择器由它定义,并与特定 阅读全文
posted @ 2019-01-10 17:19 小学弟- 阅读(221) 评论(0) 推荐(0) 编辑
摘要:scrapy框架的命令解释 创建爬虫项目 scrapy startproject 项目名例子如下: scrapy startproject test1 这个时候爬虫的目录结构就已经创建完成了,目录结构如下: |____scrapy.cfg |____test1 | |______init__.py 阅读全文
posted @ 2019-01-10 17:01 小学弟- 阅读(190) 评论(0) 推荐(0) 编辑
摘要:<!--done--> 爬虫信息相关 这里我们通过请求网页例子来一步步理解爬虫性能 当我们有一个列表存放了一些url需要我们获取相关数据,我们首先想到的是循环 简单的循环串行 这一种方法相对来说是最慢的,因为一个一个循环,耗时是最长的,是所有的时间总和代码如下: import requests ur 阅读全文
posted @ 2019-01-10 16:29 小学弟- 阅读(189) 评论(0) 推荐(0) 编辑
摘要:<!--done--> PyQuery库的使用 PyQuery库也是一个非常强大又灵活的网页解析库,如果你有前端开发经验的,都应该接触过jQuery,那么PyQuery就是你非常绝佳的选择 PyQuery 是 Python 仿照 jQuery 的严格实现。语法与 jQuery 几乎完全相同,所以不用 阅读全文
posted @ 2019-01-10 16:25 小学弟- 阅读(211) 评论(0) 推荐(0) 编辑
摘要:beautifulsoup库的使用 beautifulsoup就是一个非常强大的工具,爬虫利器。 beautifulSoup “美味的汤,绿色的浓汤” 一个灵活又方便的网页解析库,处理高效,支持多种解析器。利用它就不用编写正则表达式也能方便的实现网页信息的抓取 快速使用 通过下面的一个例子,对bs4 阅读全文
posted @ 2019-01-10 16:22 小学弟- 阅读(197) 评论(0) 推荐(0) 编辑
摘要:爬虫正则的基本使用 什么是正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是 事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符”,这个“规则字符” 来表达对字符的一种过滤逻辑。 正则并不是python独有的,其他语言也都有正则python中的正则,封装了re模块 python 阅读全文
posted @ 2019-01-10 16:16 小学弟- 阅读(221) 评论(0) 推荐(0) 编辑
摘要:urllib库的使用 官方文档地址:https://docs.python.org/3/library/urllib.html 什么是urllib Urllib是python内置的HTTP请求库包括以下模块urllib.request 请求模块urllib.error 异常处理模块urllib.pa 阅读全文
posted @ 2019-01-10 16:12 小学弟- 阅读(385) 评论(0) 推荐(0) 编辑