webmagic
webmagic copied to clipboard
A scalable web crawler framework for Java.
jsoup中有一个selectFirst方法,匹配成功一次就结束了,相比于select要做全文档匹配会好不少。 webmagic项目引用的xsoup中的jsoup版本是1.8.3,这个版本的jsoup还没有selectFirst方法。 我主要看了下xpath方式,最后调用的org.jsoup.select.NodeTraversor#traverse,所以每次都要全文档匹配。 如果不修改xsoup,我能想到的方式是: 直接调用 XPathEvaluator compile = Xsoup.compile("//div"); 通过反射获取compile中的evaluator属性,然后调用 ` Collector.findFirst(evaluator , page.getHtml().getDocument().root()); ` 所以是否能为webmagic加上selectFirst方法。
想做一个管理后台,可以控制爬虫的开启与关闭,这种一般要怎么实现,还请大神给个思路
In webmagic-selenium project. 1. Add test code using chromedriver in windows. 2. Add test code using javascript with chromedriver.It is good practice to save time.
RedisPriorityScheduler 类实现的 pushWhenNoDuplicate() 方法在处理 request 中的附加信息的时候,只检查了 extra 属性,如果 extra 属性为空,request 中其他的属性如 header、method、cookie 等都不会被保存。 如下图:
Site site = Site.me().setDomain("xxx.xxx.com").addCookie("xxx", "xxx"); Request request=new Request("https://xxx.xxx.com/xxx"); request.setMethod(HttpConstant.Method.POST); request.setRequestBody(HttpRequestBody.json("{\"aaa\": \"xxx\", \"bbb\": \"yyy\"}", "UTF-8")); 代码如上,成功启动chrome,但请求没有携带cookie,且请求方法为get。
在HashSetDuplicateRemover这个类里,如果先对url做一个md5的hash,再保存到hashset里去重,是不是能节省很多内存? 可以考虑下
Hello! I just wanted to let you know there's a possible bug here that allows more `threadAlive.get()` to become greater than `threadNum`. For example, if `threadAlive.get() == threadNum - 1`...