1. 如何用php采集百度的热门关键词
<?php
$url='http://top..com/buzz/top10.html';
$content=file_get_contents($url);
eregi('<tr><td class="rank">(.*)</a></td><td>',$content,$rg);
$txt= str_replace("<(.*)>","",$rg);
echo $txt;
?>
可能其中有些错误,基本原理是这样的!
现在提取独有的代码段,然后对该代码段进行必要的处理,得到抽取结果!
2. php底层原理 php是如何运行的
1、PHP动态语言执行过程:拿到一段代码后,经过词法解析、语法解析等阶段后,源程序会被翻译成一个个指令(opcodes),然后ZEND虚拟机顺次执行这些指令完成操作。PHP本身是用C实现的,因此最终调用的也是悉兄伍C的函数,实际上,我们可以把PHP看做一个C开发的软件。
2、PHP的4层运行体系:
(1)Zend引擎:Zend整体用纯C实现,是PHP的内核部分,他将PHP代码翻译(词法、语法解析等一系列编译过程)为可执行opcode的处理并实现相应的睁或处理方法、实现了基本的数据结构(如:hashtable、OO)、内存分配机制及管理、提供了相应的api方法供外部调用,是一切的核心,所有的外围功能均围绕Zend实现。
(2)Extensions:围绕着Zend引擎,extensions通过组件式的方式提供各种基础服务,我们常见的各种内置函数(array系列)、标准库等都是通过extension来实现,用户也可以根据需要实现自己的extension的典型应用)。
(3)Sapi:Sapi全称,也就是服务端应用编程接口,Sapi通过一系列钩子函数,使得PHP可以和外围交互数据,这是PHP非常优雅和成功的设计,通过sapi成功的将PHP本身和上尘慧层应用解耦隔离,PHP可以不再考虑如何针对不同应用进行兼容,而应用本身也可以针对自己的特点实现不同的处理方式。
(4)上层应用:这就是我们平时编写的PHP程序,通过不同的spai方式得到各种各样的应用模式,如何通过webserver实现web应用、在命令行下已脚本方式运行等等。
3. phpcms网站建设中采集的方法,怎么样做采集
工具/原料
PHPCMS
文章采集器
方法/步骤
1、首先我们需要下载并安装GBK格式的PHPCMS系统。
2、下载PHPCMS和文章采集器的接口文件
3、将jiekou.php文件复制到网站的根目录下,并用记事本打开该文件,修改“密码验证”栏目password处的密码
4、启动文章采集器,先点击【第三步发布内容设置】中的"web发布管理配置"
5、在弹出的【web发布配置管理】窗口中单击右侧的【更多】按钮,导入“phpcms9.wpm”配置模块,并选择该模块
6、设置【web发布配置管理】中的编码设置、登录操作、获取分类栏目等选项
7、单击【测试】按钮,在弹出的【发布配置测试】对话框中设置标签和内容的值,此项为必须设置,否则发布测试文章会失败。至此PHPCMS已经与文章采集器连接成功。
4. php工作原理
PHP的工作原理
:PHP的所有应用程序都是通过WEB服务器(如IIS或Apache)和PHP引擎程序解释执行完成的。
工作过程包括四个方面:
(1)当用户在浏览器地址中输入要访问的PHP页面文件名,然后回车就会触发这个PHP请求,并将请求传送化支持PHP的WEB服务器。
(2)WEB服务器接受这个请求,并根据其后缀进行判断如果是一个PHP请求,WEB服务器从硬盘或内存中取出用户要访问的PHP应用程序,并将其发送给PHP引擎程。
(3)PHP引擎程序将会对WEB服务器传送过来的文件从头到尾进行扫描并根据命令从后台读取,处理数据,并动态地生成相应的HTML页面。
(4)PHP引擎将生成HTML页面返回给WEB服务器。WEB服务器再将HTML页面返回给客户端浏览器。
PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。
PHP语言作为一种语言程序,其专用性逐渐在应用过程中显现,其技术水平的优劣与否将直接影响网站的运行效率。其特点是具有公开的源代码, 在程序设计上与通用型语言,如C语言相似性较高,因此在操作过程中简单易懂,可操作性强。
5. PHP中怎样实现文章采集
只举例说明,生产环境你自己根据情景去搞
$url = 'www.domain.com';
$content = file_get_content($url);//抓取网页全部内容
preg_match( string pattern, string subject [, array matches ] );//正则获取自己需要的内容
入库~
完事了。。。
当然,情形复杂,例如需要登录,采集目标限制等问题,这再说...
实际使用的时候,可以直接使用Snoopy类,提供好多方法供使用,比自己去造轮子要安全,当然,你可以在她的基础上再去造轮子~~~
6. 怎么用php采集网站数据
简单的分了几个步骤:
1、确定采集目标
2、获取目标远程页面内容(curl、file_get_contents)
3、分析页面html源码,正则匹配你需要的内容(preg_match、preg_match_all),这一步最为重要,不同页面正则匹配规则不一样
4、入库
7. php采集大数据的方案
1、建议你读写数据和下载图片分开,各用不同的进程完成。
比如说,取数据用get-data.php,下载图片用get-image.php。
2、多进程的话,php可以简单的用pcntl_fork()。这样可以并发多个子进程。
但是我不建议你用fork,我建议你安装一个gearman worker。这样你要并发几个,就启几个worker,写代码简单,根本不用在代码里考虑thread啊,process等等。
3、综上,解决方案这样:
(1)安装gearman worker。
(2)写一个get-data.php,在crontab里设置它每5分钟执行一次,只负责读数据,然后把读回来的数据一条一条的扔到 gearman worker的队列里;
然后再写一个处理数据的脚本作为worker,例如叫process-data.php,这个脚本常驻内存。它作为worker从geraman 队列里读出一条一条的数据,然后跟你的数据库老数据比较,进行你的业务逻辑。如果你要10个并发,那就启动10个process-data.php好了。处理完后,如果图片地址有变动需要下载图片,就把图片地址扔到 gearman worker的另一个队列里。
(3)再写一个download-data.php,作为下载图片的worker,同样,你启动10个20个并发随便你。这个进程也常驻内存运行,从gearman worker的图片数据队列里取数据出来,下载图片
4、常驻进程的话,就是在代码里写个while(true)死循环,让它一直运行好了。如果怕内存泄露啥的,你可以每循环10万次退出一下。然后在crontab里设置,每分钟检查一下进程有没有启动,比如说这样启动3个process-data worker进程:
* * * * * flock -xn /tmp/process-data.1.lock -c '/usr/bin/php /process-data.php >> /dev/null 2>&1'
* * * * * flock -xn /tmp/process-data.2.lock -c '/usr/bin/php /process-data.php >> /dev/null 2>&1'
* * * * * flock -xn /tmp/process-data.3.lock -c '/usr/bin/php /process-data.php >> /dev/null 2>&1'
不知道你明白了没有
8. php如何采集js生成的内容
访问需要采集的页面,如果数据是用js输出的html,那么必定有接口或者本身页面中给js提供了数据,来遍历输出html。
用chrome的审查元素中的network,可以单独看xhr,看看是否是ajax请求的接口,如果数据是从接口来的,直接用PHP去获取那个接口的数据就可以了。
如果没有ajax请求,查看html源代码,在里面找数据。