php 网页抓取(使用PHP的cURL库可以简单和有效地去抓网页)

优采云 发布时间: 2021-09-17 14:26

  php 网页抓取(使用PHP的cURL库可以简单和有效地去抓网页)

  使用PHP的curl库可以简单有效地抓取网页。你只需要运行一个脚本并分析你抓取的网页,然后你就可以通过一种程序化的方式获得你想要的数据。无论您是想从链接获取一些数据,还是想获取一个XML文件并将其导入数据库,即使只是为了获取网页内容,curl都是一个功能强大的PHP库。本文主要介绍如何使用这个PHP库

  启用卷曲设置

  首先,我们必须确定我们的PHP是否已经打开了这个库。您可以使用PHP_uinfo()函数来获取此信息

  ﹤?php

phpinfo();

?﹥

  如果您可以在网页上看到以下输出,则表示curl库已打开

  如果您看到它,您需要设置PHP并打开库。如果你是在windows平台上,这是非常简单的。您需要更改php.ini文件的设置以查找php_Curl.dll并取消前面的分号注释。详情如下:

  //取消下在的注释

extension=php_curl.dll

  如果您使用的是Linux,则需要重新编译PHP。编辑时,需要打开编译参数-将“–with curl”参数添加到configure命令中

  一个小例子

  如果一切就绪,下面是一个小程序:

  ﹤? php

  //初始化curl对象

  $curl=curl_uinit()

  //设置需要爬网的URL

  curl_uu“setopt($curl,CURLOPT_uurl)”)

  //设置标题

  curl_uusetopt($curl,CURLOPT_头,1)

  //设置curl参数以要求结果保存在字符串中或输出到屏幕

  curl_setopt($curl,CURLOPT_RETURNTRANSFER,1))

  //运行curl以请求网页

  $data=curl\u exec($curl)

  //关闭URL请求

  curl_close($curl)

  //显示获得的数据

  var_dump($数据)

  如何发布数据

  上面是捕获网页的代码,下面是发布到网页的数据。假设我们有一个处理表单的网址,它可以接受两个表单字段,一个是电话号码,另一个是短信内容

  ﹤?php

$phoneNumber = '13912345678';

$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, 'http://www.example.com/sendSMS.php');

curl_setopt($ch, CURLOPT_HEADER, 1);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_POST, 1);

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, 'http://www.example.com');

curl_setopt($ch, CURLOPT_HEADER, 1);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);

curl_setopt($ch, CURLOPT_PROXY, 'fakeproxy.com:1080');

curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'user:password');

$data = curl_exec();

curl_close($ch);

?﹥

  关于SSL和Cookie

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线