// // // //

随笔分类 -  爬虫

 
爬虫实战(一)-新版知乎
摘要:知乎是爬虫的一个经典案例,因为他经常改版,越来越难爬,可能我这个教程写完他就又改版了。 知乎的难点 1. 登录,且url跳转 2. 参数加密 3. 验证码 本文将介绍模拟登录知乎的详细过程。 抓包 -- 分析登录过程 使用 fiddler 抓包 使用浏览器抓包 1. 获取登录url 输入账号、密码等 阅读全文
posted @ 2019-06-11 09:52 努力的孔子 阅读(6518) 评论(7) 推荐(0) 编辑
Scrapy 教程(11)-API启动爬虫
摘要:scarpy 不仅提供了 scrapy crawl spider 命令来启动爬虫,还提供了一种利用 API 编写脚本 来启动爬虫的方法。 scrapy 基于 twisted 异步网络库构建的,因此需要在 twisted 容器内运行它。 可以通过两个 API 运行爬虫:scrapy.crawler.C 阅读全文
posted @ 2019-05-27 15:13 努力的孔子 阅读(1956) 评论(1) 推荐(0) 编辑
Scrapy 教程(十)-管道与数据库
摘要:Scrapy 框架将爬取的数据通过管道进行处理,即 pipelines.py 文件。 管道处理流程 一、定义 item item 表示的是数据结构,定义了数据包括哪些字段 写法比较固定,不可随意更改;注意没有return 二、在爬虫中生成 item 爬虫组件必须将数据按 item 的结构进行组织 注 阅读全文
posted @ 2019-05-24 17:14 努力的孔子 阅读(662) 评论(0) 推荐(0) 编辑
Scrapy 教程(九)-日志系统
摘要:最新版本的 scrapy 已经废弃了 scrapy.log 的使用,赞成显示调用python标准日志记录。 Python 内建日志系统 Scrapy 日志系统 方式一:Spider 实例提供的logger方法 方式二:自定义日志记录器 这两种方式生成的日志记录在系统命令中 日志记录配置 若要生成日志 阅读全文
posted @ 2019-05-24 10:58 努力的孔子 阅读(362) 评论(0) 推荐(0) 编辑
selenium 教程
摘要:selenium 本身是一套web自动化测试工具,但其经常被用于爬虫,解决一些复杂爬虫的问题。 selenium 用于爬虫时,相当于模拟人操作浏览器。 浏览器驱动 使用 selenium 需要先安装 浏览器驱动,selenium 支持多种浏览器 可以看到支持的浏览器类型有十几种,其中常用的有 chr 阅读全文
posted @ 2019-05-23 15:20 努力的孔子 阅读(13921) 评论(0) 推荐(1) 编辑
Scrapy 教程(八)-分布式爬虫
摘要:scrapy 本身并不是一个分布式框架,而 Scrapy-redis 库使得分布式成为可能; Scrapy-redis 并没有重构框架,而是基于redis数据库重写了框架的某些组件。 分布式框架要解决两个问题 分配爬取任务:为每个爬虫分配不重复的任务 scrapy-redis 使用 redis 数据 阅读全文
posted @ 2019-05-23 14:45 努力的孔子 阅读(479) 评论(0) 推荐(0) 编辑
Scrapy 教程(七)-架构与中间件
摘要:Scrapy 使用 Twisted 这个异步框架来处理网络通信,架构清晰,并且包含了各种中间件接口,可以灵活的完成各种需求。 Scrapy 架构 其实之前的教程都有涉及,这里再做个系统介绍 Engine :Scrapy 引擎,即控制中心,负责控制数据流在系统的各个组件中流动,并根据相应动作触发事件; 阅读全文
posted @ 2019-05-17 15:23 努力的孔子 阅读(667) 评论(0) 推荐(0) 编辑
Scrapy 教程(六)-反爬
摘要:伪装浏览器 服务器可以查看访问的终端,如果不是浏览器,可能会被屏蔽,而且即使你用同一浏览器访问频率过快,也可能被屏蔽,所以需要伪装浏览器反爬。 有以下几种方法 1. 在 settings中添加 user_agent 也可以添加其他header 2. 重写中间件 在原有 middlewares.py 阅读全文
posted @ 2019-05-17 10:19 努力的孔子 阅读(1226) 评论(0) 推荐(0) 编辑
Scrapy 教程(五)-分页策略
摘要:scrapy 爬取分页网站的策略 1. 检测当前页是否存在“下一页” 2. 如果存在,把“下一页”的链接交给本方法或者其他方法 3. 如果不存在,结束 图示 示例代码 在解析器中,检测下一页的链接,如果存在,就在解析器中继续爬取,这是一种递归实现分页爬取的策略。 当然你可以用其他方法。 注意,这只是 阅读全文
posted @ 2019-05-17 09:53 努力的孔子 阅读(779) 评论(0) 推荐(0) 编辑
Scrapy 教程(四)-命令
摘要:scrapy 没有界面,需要命令行来操作。 非常简单,总共也就十四五个命令,分为全局命令和项目命令。 全局命令 在哪都能用 常用命令 不太常用 scrapy bench 用于 benchmark 测试,测试 scrapy 在硬件上的效率。 项目命令 在项目目录才能用 命令行参数 为了增强scrapy 阅读全文
posted @ 2019-05-17 09:44 努力的孔子 阅读(320) 评论(0) 推荐(0) 编辑
Scrapy 教程(三)-网站解析
摘要:有经验的人都知道,解析网站需要尝试,看看得到的数据是不是想要的,那么在scrapy中怎么尝试呢? 调试工具-shell 主要用于编写解析器 命令行进入shell 这个命令其实是个下载器 shell 界面 获取数据 解析命令 response.css('title'),验证获取的数据正确与否 退出sh 阅读全文
posted @ 2019-05-17 09:40 努力的孔子 阅读(1003) 评论(0) 推荐(1) 编辑
Scrapy 教程(二)-操作流程
摘要:scrapy 是个爬虫框架,是由python编写的,用法类似 django 框架。 创建工程 在开始爬虫之前,先创建工程 目录结构如下图 文件说明 顶层的scrapy1是工程名 第二层的scrapy1相当于app名 scrapy.cfg 工程的配置信息,目的是使得工程能够正常运行 spiders 用 阅读全文
posted @ 2019-05-17 09:39 努力的孔子 阅读(326) 评论(0) 推荐(0) 编辑
Scrapy 教程(一)-安装与入门
摘要:安装 具体请自行百度 依赖库 网上说pip安装会内分泌失调,我试了下还行吧,不过也遇到几个问题 解决方法 解决方法 安装成功 离线下载地址 https://pypi.org/project/Scrapy/#files 实战入门 命令行运行 自动生成 test.json 文件,并存入爬取内容。 这是最 阅读全文
posted @ 2019-05-17 09:36 努力的孔子 阅读(339) 评论(0) 推荐(0) 编辑
网络代理
摘要:代理,就是找个人代替你 正向代理 客户端的代理,找个IP替你访问web服务器 在浏览器中设置代理:设置==>高级设置==>代理服务器设置 不同浏览器设置方法不同,大致思路一致 反向代理 服务端的代理,找个服务器替你响应请求,有几个作用 1. 把请求分散到不同服务器上,减缓压力 2. 隐藏真实 IP, 阅读全文
posted @ 2019-04-07 15:53 努力的孔子 阅读(775) 评论(0) 推荐(0) 编辑
反爬与反反爬
摘要:很多网站都有反爬机制,自从有了爬虫,反爬与反反爬的斗争就没停过,而且都在不断升级。 下面介绍一些常见的反爬与反反爬机制。 基于headers的反爬 基于用户请求的headers反爬是最常见的反爬机制。 在请求头headers中,包含很多键值对,服务器会根据这些键值对进行反爬。 1. User-Age 阅读全文
posted @ 2019-04-07 14:28 努力的孔子 阅读(1907) 评论(0) 推荐(0) 编辑