接到一个任务要我写一个爬虫!可是我暂时只会 php,但是 php 写爬虫不是强项!v 友有用 php 写过爬虫的吗?有个开源项目推荐借鉴参考一下!或者说我现在去学习 python 星期五能完成好一个爬虫吗!爬出来的数据要写进数据储存的!谢谢了
1
golmic 2017-03-15 12:46:09 +08:00 via Android
有偿提供 python 爬虫解决方案
|
2
zqhong 2017-03-15 12:55:01 +08:00
|
3
slince 2017-03-15 12:55:04 +08:00
https://github.com/slince/spider 确实不是强项,单线程爬的
|
4
shoaly 2017-03-15 12:56:34 +08:00
假设你 php 基本功 已经会数据库了 也会发出 get, post 请求 获取 response
那么你离 爬虫只差了一个 正则的距离 |
5
lecher 2017-03-15 12:59:38 +08:00
任何语言只要能发网络请求都可以写爬虫。
python 爬虫通常是用增强库,用来帮助解析网页数据。 php 写爬虫通常是用 curl 库+re 正则解析,可以借助 curl 的库做很多参数设置, header cookie 之类的。抽取数据是靠正则来做解析。需要自己写任务管理。 如果爬虫是强嵌入原有业务的,比如需要取很多业务数据做检测,那就用 php 继续写爬虫,封装一个 curl 的处理接口,然后写一个多进程任务管理,要用到命令行的库,通常要借助 mysql 、 redis 之类的做进程间数据同步。 如果仅仅只是为了一次性抓取数据, python 上手也很快,一周绰绰有余。 |
6
jarlyyn 2017-03-15 13:13:16 +08:00 1
|
8
icemanpro 2017-03-15 13:19:19 +08:00
火车采集
|
9
pubby 2017-03-15 13:39:56 +08:00 via Android
一直用 php 爬,按功能分开写(目标网址预处理,抓取,分析....),用队列。多开几个抓取进程同样可以跑满带宽。
|
10
fuxkcsdn 2017-03-15 13:44:52 +08:00
前提是你要爬什么?目标网站限制爬虫吗?如何限制
BTW , PHP 写爬虫效率不比 python 差 有偿提供 PHP 爬虫方案 XD |
11
Felldeadbird 2017-03-15 14:21:05 +08:00 2
jquery 会吧。用这个库,分分钟教你做人。 https://querylist.cc/
|
12
keller 2017-03-15 14:24:05 +08:00
你需要的可能是火车头采集器
|
13
FYK 2017-03-15 14:29:14 +08:00
同 2 楼, phpspider
|
16
cdwyd 2017-03-15 14:42:31 +08:00 via Android
同有偿,二楼优先😁
价格看复杂程度,平价接单 |
17
silov 2017-03-15 14:45:46 +08:00
分两步,第一步抓取: Snoopy.class.php
第二步解析内容: Simple Html Dom 两个关键词直接百度就可以把工具类拿来用了,挺简单的。 |
18
sxm 2017-03-15 15:08:57 +08:00
简单的就是 curl 获取页面内容,然后就是写正则提取需要的数据了。
之前某论坛要关闭,我是花了 2 个夜晚写了 PHP 抓取程序把那个论坛的数据都抓下来了并入库。因为单进程抓取速度太慢,又写了个多进程页面管理,前端页面能实时查看各个进程的抓取速度,开新进程或者结束指定进程等等。 curl 获取页面, redis 做队列, access 做数据库(喜欢单个文件数据库,小巧方便带走) |
19
lijinma 2017-03-15 15:12:23 +08:00
这帮人,每人推荐个靠谱的。。
|
20
lijinma 2017-03-15 15:12:41 +08:00
我来推荐个靠谱简单的 https://github.com/FriendsOfPHP/Goutte
|
21
scnace 2017-03-15 15:21:41 +08:00 via Android
任何语言的爬虫的实践都差不多吧。 http get/post + 分析 request header +DOM selector/XPath/正则(这是基础的
再上去就是集成啥 headless browser /proxypool/分布式调度啥的了 |
22
Moker 2017-03-15 16:15:36 +08:00
我现在也是 PHP 写爬虫 还行 在 PHPQUERY 解析
|
23
bonfy 2017-03-15 16:21:59 +08:00 via iPhone
同有偿 楼上的都优先
|
25
mrcn 2017-03-15 17:23:22 +08:00
我记得有个库叫 PHPQUERY
很好用,类似 jQuery 一样直接用选择器就好 不过 PHP 的多线程…… |
26
appppap 2017-03-15 17:30:23 +08:00 via iPhone
有偿约炮
|
27
benbenlang 2017-03-15 17:33:26 +08:00
楼主能帮忙给我爬几个用户 ID 吗?
|
28
sxm 2017-03-15 17:52:30 +08:00 1
@ydxred 我用 redis 作用是做队列,先把要抓取的页面 ID 全部 push 进去,然后抓取页面就从 redis 里 pop 一个页面 ID 出来去抓取,所以多运行几个 php 页面就能提升抓取速度,相当于多进程模仿多线程。本来是不用 redis 的,因为 access 并发读取修改的问题,用文件锁都锁不住。
|
30
uzumaki 2017-03-15 19:12:18 +08:00 via Android
不采集 https 的话 其实 dedecms 就行啊
|
31
HanSonJ 2017-03-15 19:51:41 +08:00
guzzle + domcrawler
|
32
lecher 2017-03-15 19:58:37 +08:00 via Android
@tammy 我个人感觉是,如果原来的业务用什么语言,需要抓取数据的时候,就看是不是特别嵌入原来的业务,需要特别频繁调用原有数据做检测的,那就用原来项目的语言,可以很方便的复用原有项目的代码做检测和插入数据。
爬虫这类的业务可大可小,用什么脚本语言写,性能都不会有特别明显的差距,主要还是看工程规范,用什么语言写全看团队成员的技术栈。 我个人比较喜欢 curl 库+v8 库+正则的方案。 curl 库解决 header cookies https 的各种问题, v8 解决某些 js 加密的问题。正则解决抽取数据的问题。 CPU 和内存消耗都比较低。 然而实际上如果只考虑一个语言的话, nodejs 解决所有问题。 |
33
pheyer 2017-03-15 20:49:52 +08:00
看看这个 PHPSpider : https://doc.phpspider.org/
|
34
figofuture 2017-03-16 10:13:18 +08:00
看看这篇文章,分分钟搞定一个爬虫程序 https://www.figotan.org/2016/08/10/pyspider-as-a-web-crawler-system/
|
35
MiguelValentine 2017-03-16 10:30:23 +08:00
周五, py ,来得及
|