webmagic

WebMagic使用代理ip爬数据解决HTTP407问题

匿名 (未验证) 提交于 2019-12-02 21:52:03
手头一个小活儿是爬竞品网站数据。使用webmagic来实现。光公司ip不行,被封了就会影响业务正常访问。刚好公司另一个项目购买了代理IP资源“站大爷”,那个项目夭折了,于是申请借来用用。 调通站大爷提供的获取代理ip的api接口并没什么技术难度。可是,在运行爬数据程序时,收到http的407错误。经了解,407是授权错误,要求代理身份验证。站大爷技术支持提醒说检查一下产品配置。发现“一手私密代理”里当前授权模式是“用户名+密码”。然后,再看webmagic的Proxy类,有一个构造器是除了必传的ip、端口外,还可以传用户名和密码。那就是它了。改正以后,测试ok。 webmagic使用代理IP实现爬虫的部分代码: Request request = new Request("https://www.xxx.com/a/b"); request.setMethod("POST"); try { request.addHeader("Proxy-Authorization","Basic "+ Base64.getEncoder().encodeToString("20190430**********:password".getBytes("utf-8"))); request.addHeader("Authorization","Basic "+ Base64.getEncoder()

Java爬虫的实现

匿名 (未验证) 提交于 2019-12-02 21:52:03
距离上一次写爬虫还是几年前了,那时候一直使用的是httpclient。 由于最近的项目又需要使用到爬虫,因此又重新查询了一些爬虫相关的框架,其中最合适的是 WebMagic 官方文档: https://github.com/code4craft/webmagic 官方教程: http://webmagic.io/docs/zh/ 啊 Processor

java 爬虫 WebMagic(四)-Scheduler

元气小坏坏 提交于 2019-11-30 14:57:59
Scheduler是WebMagic中对url进行管理的组件,它主要有2个功能: 对待抓取的URL队列进行管理。 对已抓取的URL进行去重。 一般使用不需要自定义,WebMagic默认实现了QueueScheduler。 WebMagic内置了几个常用的Scheduler。 所有默认的Scheduler都默认实现了 DuplicateRemover接口,去url进行去重。 如果想要关闭去重的功能能,可以自己实现DuplicateRemover接口,在isDuplicate()方法中返回fasle就行了 public class DonothingDuplicateRemover implements DuplicateRemover { @Override public boolean isDuplicate(Request request, Task task) { return false; } @Override public void resetDuplicateCheck(Task task) { } @Override public int getTotalRequestsCount(Task task) { return 0; } } 来源: https://www.cnblogs.com/yhood/p/11599121.html

java 爬虫 WebMagic(三)-PipeLine

孤者浪人 提交于 2019-11-30 14:50:18
在实现了processor接口的时候,把抓取的数据通过 page.putField("key", value); 发送到自定义的Pipeline中,对数据进行后期处理,如分析,存储等 实现方式:继承Pipeline接口,比如: public class MyPipeline implements Pipeline { @Override public void process(ResultItems resultItems, Task task) { User inPlay = resultItems.get("user");// 收到抓取程序传递的滚球Inplay对象 List<String> list = resultItems.get("list"); //收到抓取程序传递的联赛对象     ...... } } 经常直接将数据存到mysql,redis等数据库中,数据持久化的工具就不用我说了吧?jdbc,mybatis等 webMagic中以及默认实现了一些pipeLine 来源: https://www.cnblogs.com/yhood/p/11598660.html

WebMagic使用代理ip爬数据解决HTTP407问题

风流意气都作罢 提交于 2019-11-29 00:11:12
手头一个小活儿是爬竞品网站数据。使用webmagic来实现。光公司ip不行,被封了就会影响业务正常访问。刚好公司另一个项目购买了代理IP资源“站大爷”,那个项目夭折了,于是申请借来用用。 调通站大爷提供的获取代理ip的api接口并没什么技术难度。可是,在运行爬数据程序时,收到http的407错误。经了解,407是授权错误,要求代理身份验证。站大爷技术支持提醒说检查一下产品配置。发现“一手私密代理”里当前授权模式是“用户名+密码”。然后,再看webmagic的Proxy类,有一个构造器是除了必传的ip、端口外,还可以传用户名和密码。那就是它了。改正以后,测试ok。 webmagic使用代理IP实现爬虫的部分代码: Request request = new Request("https://www.xxx.com/a/b"); request.setMethod("POST"); try { request.addHeader("Proxy-Authorization","Basic "+ Base64.getEncoder().encodeToString("201904301322525245:45000349".getBytes("utf-8"))); request.addHeader("Authorization","Basic "+ Base64.getEncoder()

WebMagic使用说明-安装篇

好久不见. 提交于 2019-11-27 12:50:09
WebMagic使用说明-安装篇 本文是WebMagic文档的一部分。系列文章写完后,会整合到 WebMagic新版文档 中。 1. 使用WebMagic WebMagic主要包含两个jar包: webmagic-core-{version}.jar 和 webmagic-extension-{version}.jar 。在项目中添加这两个包的依赖,即可使用WebMagic。 1.1 使用Maven WebMagic基于Maven进行构建,推荐使用Maven来安装WebMagic。在项目中添加以下坐标即可: <dependency> <groupId>us.codecraft</groupId> <artifactId>webmagic-extension</artifactId> <version>0.4.3</version> </dependency> WebMagic使用slf4j-log4j12作为slf4j的实现.如果你自己定制了slf4j的实现,请在项目中去掉此依赖。 <dependency> <groupId>us.codecraft</groupId> <artifactId>webmagic-extension</artifactId> <version>0.4.3</version> <exclusions> <exclusion> <groupId>org

爬取知乎60万用户信息之后的简单分析

那年仲夏 提交于 2019-11-27 08:38:10
爬取知乎60万用户信息之后的简单分析 标签 : webporter [TOC] 使用 Java+Elasticsearch+Kibana 爬取了知乎 60 万用户数据,做了简单的可视化分析。 项目源码 GitHub - webporter 动机 在知乎上看到有个叫 @路人甲 的大神每隔一段时间就爬爬豆瓣/B站等等网站,做了很多有意思的分析,加上之前因为实验室项目接触过 Nutch,浅尝辄止了,所以一直想好好玩玩爬虫。 网上 Python 的爬虫教程很多,而自己的主语言是 Java,本着宣传 Java,以练促学的目的,我使用 Java 爬取了知乎 60 万用户信息,主要想看看知乎上妹子多不多啊/是不是都是基佬啊,标配常青藤/年薪百万是不是真的啊,等等。 思路 为了保证数据的质量,避免爬到一些僵尸号什么的,我选择爬取关注列表而非粉丝列表。我随机挑选了一位粉丝过千的优秀回答者作为起始,爬取他的关注列表,再对列表中的每个人爬取其关注列表,以此类推…… 下载了大概 7 个小时,爬了 40 多万用户的关注列表,拿到了 10G 的数据,如图所示: 理论上有 800 多万用户,可惜有很多重复的,去重后将数据导入 Elasticsearch,得到 60+ 万用户数据: 数据验证 接下来简单看看下载下来的数据靠不靠谱,随手在知乎和我的 Kibana 分别搜了下轮子哥 @vczh 可以看到

WebMagic

為{幸葍}努か 提交于 2019-11-26 23:01:41
WebMagic 是干嘛的? WebMagic 是一个 Java 平台上的开源爬虫框架,其设计参考了 Scrapy,实现则参考了 HttpClient 和 Jsoup。其由四大组件组成: Downloader,负责下载网页,使用 HttpClient。 PageProcessor,负责解析网页和链接发现,使用 Jsoup 和 Xsoup。 Scheduler,负责管理待抓取的 URL 和去重。 Pipeline,负责结果数据的持久化。 快速开始 (1)依赖引入 ext { versions = [ "web_magic": '0.7.3' ] } dependencies { // 这里有自己项目的日志实现 compile project(':base') compile("us.codecraft:webmagic-core:${versions.web_magic}") { exclude group: 'org.slf4j', module: 'slf4j-log4j12' // 移除默认的日志实现 } compile("us.codecraft:webmagic-extension:${versions.web_magic}") { exclude group: 'org.slf4j', module: 'slf4j-log4j12' } } (2)快速开始 爬取