如何选择其它保存方式

发布于 2021-11-22 06:35:46 字数 254 浏览 892 评论 8

@黄亿华 你好,想跟您请教个问题:最近一直在研究爬虫,在开源项目中,发现您的API这种实现方式比较合胃口(讨厌配置文件~~)。自己用了一下,感觉非常满意。现在我有个问题,如果我想把抓取的结果保存到数据库中(比如Mongodb),是不是需要自己实现Pipeline接口写一个DBPipeline?求指教。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

私藏温柔 2021-11-25 06:44:27

@黄亿华 好吧!黄哥。。。小弟实在是佩服。。。非常感谢您的帮助!

蓝颜夕 2021-11-25 06:43:53

回复
最近写了一篇长文,讲爬虫的机制,可以看一下:http://my.oschina.net/flashsword/blog/145796

陌上芳菲 2021-11-25 06:39:08

回复 @ywooer : 拿韩寒的新浪博客为例,你可以从你想要爬的博客的第一篇开始,每一页只抓取页脚的"前一篇"链接,这个区域可以用xpath来选取,再使用links方法来抽取链接,最后代码是这样子:

page.addTargetRequests(page.getHtml()
.xpath("//div[@class='articalfrontback SG_j_linedot1 clearfix']").
links().toStrings());

完整代码在
https://github.com/code4craft/webmagic/blob/master/webmagic-samples/src/main/java/us/codecraft/webmagic/samples/SinaBlogProcesser.java

webmagic的samples里有一些已有爬虫的实现,你可以参考一下!

高跟鞋的旋律 2021-11-25 06:21:56

诚惶诚恐啊,小弟可当不起您的感谢,我就是菜鸟一个。也就只能拿大牛的东西来用,自己可没那两把刷子。嘿嘿!还得向您请教请教,webmagic能不能实现只抓取页面指定位置的URL,比如说,我要抓取您的博客,但是页面还会有其他人的博客推荐。这个其他人的怎么屏蔽掉?(例如新浪博客)

青萝楚歌 2021-11-24 18:18:56

回复
有两种办法,一种是根据URL地址的特征,用正则表达式来进行过滤,这个比较方便,一般也够用了;还有一种办法,是先选取到页面某一部分,然后再提取链接,这种比较复杂,需要写比较复杂的抽取规则。

等风来 2021-11-23 21:32:58

回复
第一种方法不能满足我的需求,举个例子,新浪博客所有人的博文地址都是http://blog.sina.com.cn/s/blog_*。第二种方法也是我能想到的,但是技术有限,不知道怎么去实现。您能不能给小弟点拨一下?不胜感激啊

静谧 2021-11-22 15:25:24

首先,非常感谢你的认可!

webmagic做持久化确实是通过实现Pipeline来接口来自己写的,比如我在自己的项目里就自己实现了一个持久化到mysql的,用到了mybatis。

http://git.oschina.net/flashsword20/jobhunter/blob/master/src/main/java/us/codecraft/jobhunter/pipeline/JobInfoDaoPipeline.java

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文