WebMagic】的更多相关文章

官方有详细的使用文档:http://webmagic.io/docs/zh/ 简介:这只是个java爬虫框架,具体使用需要个人去定制,没有图片验证,不能获取js渲染的网页,但简单易用,可以通过xpath和css选择符获取网页内容,官方也有超详细的文档,适合爬取简单的网页和新手学习爬虫.图片验证和js渲染网页获取都可以后来添加进去.使用webmagic这个框架,可以减少很多需要自己写的代码,从而专注于网页分析获取和储存的地方. 使用:…
之前就有网友在博客里留言,觉得webmagic的实现比较有意思,想要借此研究一下爬虫.最近终于集中精力,花了三天时间,终于写完了这篇文章.之前垂直爬虫写了一年多,webmagic框架写了一个多月,这方面倒是有一些心得,希望对读者有帮助. webmagic的目标 一般来说,一个爬虫包括几个部分: 页面下载 页面下载是一个爬虫的基础.下载页面之后才能进行其他后续操作. 链接提取 一般爬虫都会有一些初始的种子URL,但是这些URL对于爬虫是远远不够的.爬虫在爬页面的时候,需要不断发现新的链接. URL…
大概在1个月前,利用webmagic做了一个爬虫项目,下面是该项目的一些个人心得,贴在这里备份: 一.为什么选择webmagic? 说实话,开源的爬虫框架已经很多了,有各种语言(比如:python.java)实现的,有单机的,还有大型分布式的,多达上百种,详情可见: http://www.oschina.net/project/tag/64/spider?lang=0&os=0&sort=view& github上随手搜索一下spider之类的关键字,也不计其数,如何选择呢? 我的…
webmagic  是一个很好并且很简单的爬虫框架,其教程网址:http://my.oschina.net/flashsword/blog/180623 webmagic参考了scrapy的模块划分,分为Spider(整个爬虫的调度框架).Downloader(页面下载).PageProcessor(链接提取和页面分析).Scheduler(URL管理).Pipeline(离线分析和持久化)几部分.只不过scrapy通过middleware实现扩展,而webmagic则通过定义这几个接口,并将其…
听到“爬虫”,是不是第一时间想到Python/php ? 多少想玩爬虫的Java学习者就因为语言不通而止步.Java是真的不能做爬虫吗? 当然不是. 只不过python的3行代码能解决的问题,而Java要30行. 这里推荐大家一个大牛做的java爬虫框架 [WebMagic] 文档简单易懂!java爬虫开发的福利啊! 一起来动手做一个小应用吧! 爬虫小应用–知乎用户信息 爬虫思想有3步 1. 抽取目标链接 2. 抽取需要的信息 3. 处理数据 一. 抽取目标链接 (确定入口地址,这里的入口是ht…
本来是想抓取博客园的博客推荐的页面的,但由于一些博客进去的页面格式都不太相同,一时不想花时间去寻找规律,发现CSDN上面的格式较为单一,就决定以CSDN推荐专家的个人博客信息作为爬虫抓取的目标. [首先,查看一下CSDN的推荐专家的页面] [然后再查看一下主页面] 准备用爬虫获取一下几个变量 1.姓名 2.访问量 3.积分 4.等级 5.排名 6.原创 7.转载 8.译文 9.评论 10.链接 11.照片 [工程截图]因为主要用到WebMagic,所有的jar包在WebMagic的git地址,自…
WebMagic项目代码分为核心和扩展两部分.核心部分(webmagic-core)是一个精简的.模块化的爬虫实现,而扩展部分则包括一些便利的.实用性的功能.WebMagic的架构设计参照了Scrapy,目标是尽量的模块化,并体现爬虫的功能特点.这部分提供非常简单.灵活的API,在基本不改变开发模式的情况下,编写一个爬虫.扩展部分(webmagic-extension)提供一些便捷的功能,例如注解模式编写爬虫等.同时内置了一些常用的组件,便于爬虫开发. 1. 一个框架,一个领域    一个好的框…
http://webmagic.io/docs/zh/posts/ch1-overview/thinking.html https://github.com/psvehla/liferay-spring-mvc-portlet http://www.huqiwen.com/2012/08/30/liferay-6-1-development-study-1/ .1 WebMagic的设计思想 1. 一个框架,一个领域 一个好的框架必然凝聚了领域知识.WebMagic的设计参考了业界最优秀的爬虫S…
摘要 webmagic 学习 从头 刚刚开始学,很多东西可能理解错了,还请各位指教 一些基本类: Request:包含要爬行的url和一些附加信息,是Page的一个成员变量 主要成员变量 String  url Map<String, Object>  extras 存储附加信息 long  priority  优先级 值越大越优先 主要方法 Request(String url) { this.url = url; }构造函数 Request  setPriority(long  prior…
今天有个网友在博客回帖,能不能用注解来写一个爬虫?想了想,因为Javaer总习惯结果有个对象Model(我在自己用的时候也是这样),ResultItems的key-value形式难免会有点麻烦,何不将抽取和Model合为一体呢?好了!现在爬osc博客只有这点代码了!而且这个对象本身是可以继续使用的! @TargetUrl("http://my.oschina.net/flashsword/blog/*")public class OschinaBlog { @ExtractBy(&qu…
最近工作主要是一些爬虫相关的东西,由于公司需要构建自己的爬虫框架,在调研过程中参考了许多优秀的开源作品,包括webmagic,webcollector,Spiderman等,通过学习这些优秀的源码获益良多. webmagic是一个简单灵活的爬虫框架.基于WebMagic,你可以快速开发出一个高效.易维护的爬虫.(官网地址:http://webmagic.io/) 本篇是webmagic源码阅读第一篇,主要探讨webmagic的核心机制,即一个BFS的爬虫是如何构建出来的. webmagic分为以…
最近突然得知之后的工作有很多数据采集的任务,有朋友推荐webmagic这个项目,就上手玩了下.发现这个爬虫项目还是挺好用,爬取静态网站几乎不用自己写什么代码(当然是小型爬虫了~~|). 好了,废话少说,以此随笔记录一下渲染网页的爬取过程 首先找到一个js渲染的网站,这里直接拿了学习文档里面给的一个网址,http://angularjs.cn/ 打开网页是这样的 查看源码是这样的 源码这么少,不用说肯定是渲染出来的了,随便搜了一条记录,果然源码里面找不到结果 那就开始解析网址了,从浏览器开发者工具…
写在前面: 官方文档:http://webmagic.io/docs/zh/posts/ch5-annotation/README.html WebMagic支持使用独有的注解风格编写一个爬虫,引入webmagic-extension包即可使用此功能. 在注解模式下,使用一个简单的Model对象加上注解,可以用极少的代码量就完成一个爬虫的编写.注解模式的开发方式是这样的: 首先定义你需要抽取的数据,并编写Model类. 在类上写明@TargetUrl注解,定义对哪些URL进行下载和抽取. 在类的…
初学爬虫,WebMagic作为一个Java开发的爬虫框架很容易上手,下面就通过一个简单的小例子来看一下. WebMagic框架简介 WebMagic框架包含四个组件,PageProcessor.Scheduler.Downloader和Pipeline,并由Spider将它们彼此组织起来. 这四大组件对应爬虫生命周期中的处理.管理.下载和持久化等功能. 而Spider则将这几个组件组织起来,让它们可以互相交互,流程化的执行,可以认为Spider是一个大的容器,它也是WebMagic逻辑的核心.…
本次爬虫所要爬取的数据为京东建材数据,在爬取京东的过程中,发现京东并没有做反爬虫动作,所以爬取的过程还是比较顺利的. 为什么要用WebMagic: WebMagic作为一款轻量级的Java爬虫框架,可以极大的减少爬虫的开发时间 为什么要使用MQ(本项目用的RabbitMq,其他的MQ也可以): 解耦各个模块,实现各个爬虫之间相互独立 项目健壮性,不管是主动还是被动原因(断电等状况)停下了项目,只需要重新读取MQ中的数据就能继续工作 拆分了业务逻辑,使每个模块更加简单.代码易于编写 为什么要用ES…
webMagic解析淘宝cookie 提示Invalid cookie header 在使用webMagic框架做爬虫爬取淘宝极又家页面时候一直提醒cookie设置不可用如下图 淘宝的验证特别严重,cookie没有正常设置进去后面会频繁弹出验证页面,这是我们不想看到的.为了解决这个问题,debug进入源码. /** * 摘选自org.apache.http.impl.cookie.RFC2965Spec */ @Override public List<Cookie> parse( final…
由于业务需要,老大要我研究一下爬虫. 团队的技术栈以java为主,并且我的主语言是Java,研究时间不到一周.基于以上原因固放弃python,选择java为语言来进行开发.等之后有时间再尝试python来实现一个. 本次爬虫选用了webMagic+selenium+phantomjs,选用他们的原因如下: webMagic(v:0.73),一个轻量级的Java爬虫框架(git地址:https://github.com/code4craft/webmagic,主页地址:http://webmagi…
webMagic虽然方便,但是也有它不适用的地方,比如定向的某个单页面爬虫,或者存在大量ajax请求,页面的跳转请求全都混淆在js里. 这时可以用webMagic结合phantomjs来真实模拟页面请求,即不仅仅获取数据,而是将整个页面完整渲染出来.虽然这样会使爬虫速度变慢很多,但是不失为一种快捷方便的解决方法. PhantomJS是一个基于 WebKit 的服务器端JavaScript API.它全面支持web而不需浏览器支持,其快速,原生支持各种Web标准: DOM 处理, CSS 选择器,…
WebMagic WebMagic是一个简单灵活的Java爬虫框架.基于WebMagic,你可以快速开发出一个高效.易维护的爬虫. 采用HttpClient可以实现定向的爬虫,也可以自己编写算法逻辑来实现多线程,创建链接池,自动解析网页代码获取请求链接,封装正则表达式等等. 但是如果使用框架,就不再需要考虑爬虫的逻辑,只需要专注HTML内容的解析和获取. 引用WebMagic后写一个爬虫只需要编写一个类实现PageProcessor接口,实现两个方法. 一个WebMagic例子 package…
引言 爬取商品信息 爬取商品评论 数据清洗 1. 引言 现代网页往往其HTML只有基本结构,而数据是通过AJAX或其他方法获取后填充,这样的模式对爬虫有一定阻碍,但是熟练以后获取并不困难,本文以爬取天猫评论为例简单讲讲动态获取以及自定义Pipeline进行数据清洗的过程. 2. 爬取商品信息 我们访问s.taobao.com/search?q=你搜索的关键字 时可以很容易的获取到搜索结果页面,不难发现淘宝把搜索结果的信息嵌入到了该获取结果的head标签之中,可以很容易的通过xpath将该信息抽取…
访问我的博客 前言 在今年二月份在项目中引入了 WebMagic 技术,用来抓取合作方的书籍,详见之前文章:WebMagic之爬虫监控,这两天新接入了一个合作商,对方接口采取的是 HTTPS 协议,而以前合作商的接口全都是 HTTP 的,在接入这家合作商的时候,发现了问题,只要是 HTTPS 的 URL 全部无法爬取. 一.问题复现 在 WebMagic-core 包中,us.codecraft.webmagic.processor.example.GithubRepoPageProcessor…
package com.ij34; import us.codecraft.webmagic.Site; import us.codecraft.webmagic.Page; import us.codecraft.webmagic.Spider; import us.codecraft.webmagic.pipeline.FilePipeline; import us.codecraft.webmagic.processor.PageProcessor; import java.util.Li…
WebMagic的结构分为Downloader.PageProcessor.Scheduler.Pipeline四大组件,并由Spider将它们彼此组织起来.这四大组件对应爬虫生命周期中的下载.处理.管理和持久化等功能 PageProcessor 需要自己写 Scheduler 除非项目有一些特殊的分布式需求,否则无需自己定制 Pipeline 要保存到数据库需要自己定制 Selectable 方法 说明 示例 xpath(String xpath) 使用XPath选择 html.xpath("…
一.导入依赖 <!--webmagic依赖--> <dependency> <groupId>us.codecraft</groupId> <artifactId>webmagic-core</artifactId> <version>0.7.3</version> </dependency> <dependency> <groupId>us.codecraft</gr…
第一次接触爬虫,之所以选择WebMagic,是因为文档齐全.用法简单.而且框架一直在维护. WebMagic是一个简单灵活的Java爬虫框架.基于WebMagic,我们可以快速开发出一个高效.易维护的爬虫. 官网地址:http://webmagic.io/ 官方文档:http://webmagic.io/docs/zh/ 文档写的很详细,重头到尾看一遍,编写简单的爬虫基本上没有任何问题了(如果不行,那就看两遍). 我这里就不在讲解怎么使用了(讲解的没有官网详细,甚至可能讲错).这里我放两个我写的…
WebMagic学习 遇到的问题 Log4j错误 解决:在src目录下添加配置文件 log4j.properties log4j.rootLogger=INFO, stdout, file log4j.logger.org.quartz=WARN, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log…
分析要爬取的网页源码: 1.打开要分析的网页,查看源代码,找到要爬取的内容: (选择网页里的一部分右击审查元素也行) 2.导入jar包,这个就直接去网上下吧: 3.写爬虫: package com.gb.pachong; import java.sql.SQLException; import com.gb.util.AddNum; import us.codecraft.webmagic.Page; import us.codecraft.webmagic.Site; import us.co…
一.WebMagic的四个组件 1.Downloader Downloader负责从互联网上下载页面,默认使用apache HttpClient作为下载工具 2.PageProcessor 负责解析页面,抽取有用的信息,以及发现新的链接,默认使用Jsoup作为HTML解析工具,并基于其开发了 解析XPath的工具Xsoup. 3.Scheduler 负责管理抓取待抓取的URL,并做一些去重的工作,默认使用JDK内存队列来管理URL,并用集合进行去重.也支持redis的分布式管理. 4.Pipel…
1. 爬虫的分类:分布式和单机 分布式主要就是apache的nutch框架,java实现,依赖hadoop运行,学习难度高,一般只用来做搜索引擎开发. java单机的框架有:webmagic和webcollector以及crawler4j python单机的框架:scrapy和pyspider 2. 作者自己在官方教程也说到了“WebMagic的设计参考了业界最优秀的爬虫Scrapy”,说明精通scrapy还是爬虫工程师最重要的任务. 3. WebMagic的代码分为两部分:webmagic-c…
问题描述:    从http://git.oschina.net/flashsword20/webmagic 下载最新代码,按照http://webmagic.io/docs/zh/posts/ch3-build-source/ 说明的方法导入进eclipse,编译然后就提示如下错误: Failure to transfer org.apache.maven.plugins:maven-surefire-plugin:pom:2.18 from https://repo.maven.apache…