php抓取工具
A. 使用php的cURL库进行网页抓取
使用模明仿PHP的cURL库可以简单和有效地去抓网页 你只需要运行一个脚本 然后分析一下你所抓取的网页 然后就可以以程序的方式得到你想要的数据了 无论是你想从从一个链接上取部分数据 或是取一个XML文件并把其导入数据库 那怕就是简单的获取网页内容 cURL 是一个功能强大的PHP库 本文主要讲述如果使用这个PHP库
启用 cURL 设置
首先 我们得先要确定我们的PHP是否开启了这个库 你可以通过使用php_info()函数来得到这一信息
﹤?phpphpinfo();?﹥
如果你可以在网页上看到下面的输出 那么表示cURL库已被开启
如果你看到的话 那么你需要设置你的PHP并开启这个库 如果你是在Windows平台下 那么非常简单 你需要改一改你的php ini文件的设置 找到php_curl dll 并取消前面的分号注释就行了 如下所示
//取消下在的注释extension=php_curl dll
如果你旦纤是在Linux下面 那么 你需要重新编译你的PHP了 编辑时 你需要打开编译参数——在configure命令上加上 –with curl 参数
一个小示例
如果一切就绪 下面是一个小例程
﹤?php// 初始化一个 cURL 对象$curl = curl_init();
// 设置你需要抓取的URLcurl_setopt($curl CURLOPT_URL //cocre );
// 设置headercurl_setopt($curl CURLOPT_HEADER );
// 设置cURL 参数 要求结果保存到字符串中还是输出到屏幕上槐链 curl_setopt($curl CURLOPT_RETURNTRANSFER );
// 运行cURL 请求网页$data = curl_exec($curl);
// 关闭URL请求curl_close($curl);
// 显示获得的数据var_mp($data);
如何POST数据
上面是抓取网页的代码 下面则是向某个网页POST数据 假设我们有一个处理表单的网址// example /sendSMS php 其可以接受两个表单域 一个是电话号码 一个是短信内容
﹤?php$phoneNumber = ;$message = This message was generated by curl and php ;$curlPost = pNUMBER= urlencode($phoneNumber) &MESSAGE= urlencode($message) &SUBMIT=Send ;$ch = curl_init();curl_setopt($ch CURLOPT_URL // example /sendSMS php );curl_setopt($ch CURLOPT_HEADER );curl_setopt($ch CURLOPT_RETURNTRANSFER );curl_setopt($ch CURLOPT_POST );curl_setopt($ch CURLOPT_POSTFIELDS $curlPost);$data = curl_exec();curl_close($ch);?﹥
从上面的程序我们可以看到 使用CURLOPT_POST设置HTTP协议的POST方法 而不是GET方法 然后以CURLOPT_POSTFIELDS设置POST的数据
关于代理服务器
下面是一个如何使用代理服务器的示例 请注意其中高亮的代码 代码很简单 我就不用多说了
﹤?php $ch = curl_init();curl_setopt($ch CURLOPT_URL // example );curl_setopt($ch CURLOPT_HEADER );curl_setopt($ch CURLOPT_RETURNTRANSFER );curl_setopt($ch CURLOPT_HTTPPROXYTUNNEL );curl_setopt($ch CURLOPT_PROXY fakeproxy : );curl_setopt($ch CURLOPT_PROXYUSERPWD user:password );$data = curl_exec();curl_close($ch);?﹥ 关于SSL和Cookie
关于SSL也就是HTTPS协议 你只需要把CURLOPT_URL连接中的//变成//就可以了 当然 还有一个参数叫CURLOPT_SSL_VERIFYHOST可以设置为验证站点
关于Cookie 你需要了解下面三个参数
CURLOPT_COOKIE 在当面的会话中设置一个cookie
CURLOPT_COOKIEJAR 当会话结束的时候保存一个Cookie
CURLOPT_COOKIEFILE Cookie的文件
HTTP服务器认证
最后 我们来看一看HTTP服务器认证的情况
﹤?php $ch = curl_init();curl_setopt($ch CURLOPT_URL // example );curl_setopt($ch CURLOPT_RETURNTRANSFER );curl_setopt($ch CURLOPT_HTTPAUTH CURLAUTH_BASIC);curl_setopt(CURLOPT_USERPWD [username]:[password] )
$data = curl_exec();curl_close($ch);?﹥
关于其它更多的内容 请参看相关的cURL手册 lishixin/Article/program/PHP/201311/21491
B. php怎么防止抓包工具
我是做数据采集的,
在我看来,除了输入验证码 , 没有什么能对我起到很好的防采集,
一般大的网站都是采用 网页加入一次性随机值 ,再有前端JS 生成秘钥 ,最后一并提交加密了的数据 ,这种没什么效果 。对一般的人可以做下防御 。但是,我只要找出它的JS加密函数 。 使用一个JS服务器(node.js),或php的 php 改写的js加密实现过程 ,加密初始值,再模拟发送 。所以,这个也没什么多大作用 。
对于验证码 ,一般简单的都可以程序识别 ,复杂的提交到前台让手动输入 。再一并发送。 这种用户体验不好。 慎行。
总的来说,建议用JS 加密吧 。
但是,还是防御不了。
我一般用 filefox 的 filebug 或 小提琴工具 。
目前大半年了,没有破解不了的网站 。
我用我的php程序 ,可以操作你的网站 。实现 用户操作 我的php程序 ,我的php程序 再去操作源网站 。
你可以去研究下 58同城网 的登录 。那里面一堆的加密 。 在我看来都是垃圾代码 。 我的程序一键登录进去。
C. php 使用crul get 如何抓取淘宝商品页面
首先我对你的php代码没看懂,不熟悉这门语言。我当时确实取到了数据,就是用JAVA第三方类库直接解析url对应的html内容,不过访问频率是个问题,不能太快,否则会封ip,可以考虑用sleep休眠机制类似的。不过总的来说还是不太稳定,效果不好
D. php开发用什么软件(php开发工具有哪些)
PHP集成开发环境,有ZendStudio、EclipseforPHP、PhpStorm等。
1、ZendStudio
ZendStudio是Zend公司开发的PHP语言集成开发环境(IDE)。除了有强大的PHP开发支持外也支持HTML、js、CSS,但只对PHP语言提供调试支持。
2、EclipsePHPStudio
EclipsePHP是一个大型PHP项目开发编译器,基于Eclipse底层开发而来,并且集成了JDK,免除了安装配置的麻烦,一次安装即可使用,无需配置。
此编译器为PHP编译器,辅助PHP代码的开发和调试,集成了代码高亮,函数跟踪,实时纠错等功能。同时还增加了协作开发版本服务器功能:SVN、CVS。内嵌浏览器可以在调试简单代码实时浏览。
3、PhpStorm
PhpStorm是JetBrains公司开发的一款商业的PHP集成开发工具,旨在提高用户效率,可深刻理解用户的编码,提供智能代码补全,快速导航以及即时错误检查。
(4)php抓取工具扩展阅读
php的特点
一、开源性和免费性闹和知
由于PHP的解释器的源代码是公开的,所以安全系数较高的网站液消可以自己更改PHP的解释程序。另外,PHP运行环境的使用也是免费的。
二、快捷性
PHP是一种非常容易学习和使用的一门语言,它的语法特点类似于C语言,但又没有C语言复杂的地址操作,而且又加入了面向对象的概念,再加上它具有简洁的语法规则,使得它操作编辑非常简单,实用性很强。
三、数据库连接的广泛性
PHP可以与很多主流的数据库建立起连接,如Mysql、ODBC、Oracle等,PHP是利用编译的不同函数与这些数据库建立起连接棚清的,PHPLIB就是常用的为一般事务提供的基库。
四、面向过程和面向对象并用
在PHP语言的使用中,可以分别使用面向过程和面向对象,而且可以将PHP面向过程和面向对象两者一起混用,这是其它很多编程语言是做不到的。
E. 怎样利用php获取数据库中指定的记录
1.增删改只在SQL语句上不同。都使用的是PHP的query函数。如果是MSSQL数据库那么query函数就是mssql_query($sql);如果是MYSQL那就是mysql_query($sql);2.操作原理就是(1)首先建立与数据库服务器的连接(2)选择要操作的数据库(3)利用数据库的会话句柄来对所选择的数据库进行SQL语句查询给你举例。查询XXX表的所有数据-----建立数据库连接部分---<?php$hostname="数据库所在的计算机名或者IP地址";$dbuser="sa";//数据库的用户名$dbpass=""; //数据库密码$dbname="test";//要访问的数据库名 $link=@mssql_connect($hostname,$dbuser,$dbpass) or die ("连接数据库出错"); //$link就是以后查询用到的会话句柄。@mssql_select_db($dbname);//进行增删改的查询$sql="select * from XXX";@mssql_query($sql,$link);?>到此,SQL语句就执行完了。
F. PHP开发通常使用什么工具
AdobeDreamweaver、EditPlus、ZendStudio都是很好的工具。轻量级用EditPlus,偏重前端设计用Dreamweaver,偏重程序开发用ZendStudio吧!
集成开发环境是一种集成了软件开发过程中所需主要工具的集成开发环境,其功能包括但不仅限于代码高亮、代码补全、调试、构建、版本控制等。一些常见的PHPIDEs如下:
ZendStudio:商业版,Zend官方出品,基于eclipse
EclipsewithPDT:免费
Coda:商业版,针对Mac用户
NetBeans:免费,功能强大
PHPStorm:商业版
AptanaStudio:免费
PhpEd:商业版
KomodoIDE/Edit:IDE为商业版,Edit可免费使用
AdobeDreamweaver:商业版
除去集成开发环境,具备代码高亮功能的常见文本编辑器因其轻巧灵活也常被选作开发工具,例如:Notepad++、Editplus、SublimeText、Everedit(国人开发)等等。(来自网络)