分享一个自己用 PHP 写的豆瓣妹子图爬虫,每日更新!

2017-07-22 16:44:44 +08:00
 wyan453351466

访问地址:

http://www.yanshuo.me/r/18douban

感觉 PHP 的爬虫并没有比 Python 差多少啊?异步并发爬取、dom 解析什么的 PHP 做起来都毫无压力的好嘛!

下面贴一下代码,自己封装的一个小的爬虫‘框架’(应该还称不上是框架吧,哈哈)。其实核心主要还是基于两个 composer 包,guzzlehttp/guzzle 和 symfony/dom-crawler。自己在应用层面做了一下封装,比如记录日志、断点续爬、失败请求重试、过滤重复请求、404 页面加入 URL 黑名单。

13478 次点击
所在节点    程序员
91 条回复
taby
2017-07-22 20:08:42 +08:00
屌了
fhefh
2017-07-22 20:26:30 +08:00
我找了半天 github 地址
maypu
2017-07-22 20:42:05 +08:00
有重复的
chengfu
2017-07-22 20:55:57 +08:00
这是我看各种发网站其中网站看得最久的一次,干得漂亮~
wyan453351466
2017-07-22 20:59:49 +08:00
@chengfu 谢谢!
wyan453351466
2017-07-22 21:01:02 +08:00
@zhucha 邀请码过段时间我会发布的哈,网站还有一些功能没做好!
wyan453351466
2017-07-22 21:47:20 +08:00
@maypu 对的。这个问题是因为有的妹子在不同的小组发了相同的帖子。。。所以爬取到就重复了,后面会想办法解决!
tgxh
2017-07-22 22:34:38 +08:00
我用 node 爬请不要害羞动不动被封 ip
HYSS
2017-07-22 22:36:58 +08:00
不怕涉黄?
wenzhoou
2017-07-22 22:39:14 +08:00
@wyan453351466 简单计算 md5 码。如果一样就不用了。或者 2 进制比较,相似度超过 80%就舍弃
ericgui
2017-07-22 22:40:21 +08:00
代码的 GitHub 地址呢?
fuxkcsdn
2017-07-22 22:42:23 +08:00
python 主要有成熟的分布式爬虫框架可用,bs 解析 html 也容易上手,速度也快(至少和 php 的类似程序对比,那快多了)
guzzle 个人感觉比 requests 好用多了(速度上没做过对比)
natforum
2017-07-22 22:43:52 +08:00
汤不热比这多,质量杠杆的
wyan453351466
2017-07-22 22:47:21 +08:00
@HYSS 这种不算涉黄吧😓 又没有露点什么的。露点的内容程序会同步豆瓣原贴删除的
wyan453351466
2017-07-22 22:52:23 +08:00
@fuxkcsdn 解析 HTML 上效率没有对比过,但是功能上 php 中 dom-crawler 的功能和 python 的一些包是一样的,都支持 css-selector 和 xpath。guzzle 的功能很强大,各种情况都考虑进去了,header、cookies 就不用说了,并发爬取也封装的很好的。一般来说爬取瓶颈都在目标网站是否有反爬虫机制,如果没有,开 100 个线程并发爬取速度超快的 (•͈˽•͈)
wyan453351466
2017-07-22 22:53:40 +08:00
@wenzhoou 嗯,主要是需要对比图片相似度。标题妹子们起的都不一样。。。
HYSS
2017-07-22 22:55:48 +08:00
@wyan453351466 你的网站好像不错呢 用的开源的?还是自己的?
wyan453351466
2017-07-22 22:56:09 +08:00
@ericgui 代码暂时还没有开源!因为目前还是紧密结合在我自己的项目里。过段时间我会抽离出来单独封装成一个框架,分享给大家。还有也得写一份简易的文档。。
wyan453351466
2017-07-22 22:57:32 +08:00
@HYSS 网站程序是自己写的,所以还有一些功能没做好。。现在正在开发呢。比如评论、通知之类的功能。。
magensky
2017-07-22 23:19:32 +08:00
其他栏目的热点信息是按照什么标准抓取的?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/377223

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX