PHP 写一个爬虫(v 友注意详细看正文详情)

2017-03-15 12:40:15 +08:00
 ydxred

接到一个任务要我写一个爬虫!可是我暂时只会 php,但是 php 写爬虫不是强项!v 友有用 php 写过爬虫的吗?有个开源项目推荐借鉴参考一下!或者说我现在去学习 python 星期五能完成好一个爬虫吗!爬出来的数据要写进数据储存的!谢谢了

3943 次点击
所在节点    程序员
35 条回复
scnace
2017-03-15 15:21:41 +08:00
任何语言的爬虫的实践都差不多吧。 http get/post + 分析 request header +DOM selector/XPath/正则(这是基础的
再上去就是集成啥 headless browser /proxypool/分布式调度啥的了
Moker
2017-03-15 16:15:36 +08:00
我现在也是 PHP 写爬虫 还行 在 PHPQUERY 解析
bonfy
2017-03-15 16:21:59 +08:00
同有偿 楼上的都优先
ydxred
2017-03-15 16:52:12 +08:00
@sxm 能不用 redis 吗?
mrcn
2017-03-15 17:23:22 +08:00
我记得有个库叫 PHPQUERY
很好用,类似 jQuery 一样直接用选择器就好
不过 PHP 的多线程……
appppap
2017-03-15 17:30:23 +08:00
有偿约炮
benbenlang
2017-03-15 17:33:26 +08:00
楼主能帮忙给我爬几个用户 ID 吗?
sxm
2017-03-15 17:52:30 +08:00
@ydxred 我用 redis 作用是做队列,先把要抓取的页面 ID 全部 push 进去,然后抓取页面就从 redis 里 pop 一个页面 ID 出来去抓取,所以多运行几个 php 页面就能提升抓取速度,相当于多进程模仿多线程。本来是不用 redis 的,因为 access 并发读取修改的问题,用文件锁都锁不住。
tammy
2017-03-15 18:44:10 +08:00
@lecher PHP 写爬虫感觉没比 shell 方便多少
uzumaki
2017-03-15 19:12:18 +08:00
不采集 https 的话 其实 dedecms 就行啊
HanSonJ
2017-03-15 19:51:41 +08:00
guzzle + domcrawler
lecher
2017-03-15 19:58:37 +08:00
@tammy 我个人感觉是,如果原来的业务用什么语言,需要抓取数据的时候,就看是不是特别嵌入原来的业务,需要特别频繁调用原有数据做检测的,那就用原来项目的语言,可以很方便的复用原有项目的代码做检测和插入数据。

爬虫这类的业务可大可小,用什么脚本语言写,性能都不会有特别明显的差距,主要还是看工程规范,用什么语言写全看团队成员的技术栈。

我个人比较喜欢 curl 库+v8 库+正则的方案。 curl 库解决 header cookies https 的各种问题, v8 解决某些 js 加密的问题。正则解决抽取数据的问题。 CPU 和内存消耗都比较低。

然而实际上如果只考虑一个语言的话, nodejs 解决所有问题。
pheyer
2017-03-15 20:49:52 +08:00
看看这个 PHPSpider : https://doc.phpspider.org/
figofuture
2017-03-16 10:13:18 +08:00
看看这篇文章,分分钟搞定一个爬虫程序 https://www.figotan.org/2016/08/10/pyspider-as-a-web-crawler-system/
MiguelValentine
2017-03-16 10:30:23 +08:00
周五, py ,来得及

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

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

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

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

© 2021 V2EX