标签: curl

使用PHP获取XML文件的内容

可能重复:
file_get_contents与https?
使用SimpleXML和PHP通过https获取XML内容的问题

我有网址:

哪个加载像这样的文件:

<calendars>
    <calendar accommodation_id="1234567">
        <day date="2012-08-09" vacancy="false" minimum_nights="7" arrival_day="true"/>
        <day date="2012-08-10" vacancy="false" minimum_nights="3" arrival_day="true"/>
        <day date="2012-08-11" vacancy="false" minimum_nights="3" arrival_day="true"/>
        ...
        <day date="2014-01-31" vacancy="true" minimum_nights="3" arrival_day="true"/>
    </calendar>
</calendars>
Run Code Online (Sandbox Code Playgroud)

出于某种原因,我的脚本不会让我获取此文件的内容.我正在使用与其他URL相同的脚本,但这总是会失败.

我的脚本是:

$accom2 = file_get_contents();

print_r($accom2);
Run Code Online (Sandbox Code Playgroud)

我需要为这种类型的URL做些什么吗?

php xml url curl file-get-contents

-1
推荐指数
1
解决办法
1万
查看次数

PHP cURL无法解析主机

我从网站收集数据,有时似乎无法访问(或者,它可能只是DNS主机,有时会出现一些问题).用PHP编写的程序(使用CLI启动)退出并显示错误:

无法解析主机'abcdef.com'

我想拦截这个错误,就像异常一样,因为程序一定不能退出.

我尝试了"尝试捕获",但这不起作用.

我想避免使用外部守护进程来重启程序......

谢谢您的帮助.

编辑:使用的代码:

function goToPage($url) {
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        curl_setopt($ch, CURLOPT_COOKIEFILE, realpath("./cookies/cookie.txt"));
        $ret = curl_exec($ch);
        if ($ret === FALSE) {
            die(curl_error($ch));
        }
        curl_close($ch);

        $this->delay();

        return $ret;
}
Run Code Online (Sandbox Code Playgroud)

php curl

-1
推荐指数
1
解决办法
2471
查看次数

用php curl获取网站正确的来源

我编写了一个简单的PHP脚本来使用CURL获取网站的源代码:

function file_get_contents_curl($url)
{
$ch = curl_init();

curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_CAINFO, dirname(__FILE__)."/curl/cacert.pem");

$data = curl_exec($ch);
$url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

if($data === false)
    return false;
return array("content" => $data, "url" => $url, "httpcode" => $httpcode);
}

$data = file_get_contents_curl("https://www.facebook.com");

print_r($data);
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我正在获取Facebook源代码,但它获取的页面与不支持的浏览器相关.事实上,重定向后的最终URL是:http://www.facebook.com/unsupportedbrowser

有什么问题?

php curl facebook web-crawler

-1
推荐指数
1
解决办法
3803
查看次数

无法在查询时刮取Booking的结果

我是使用PHP而不是PHP本身的Web抓取新手.我的问题不是正则表达式相关,但似乎直接与booking.com网站有关.我想在特定城市刮取酒店的价格.为此,我在预订页面中复制了浏览器中的URL,并将其粘贴到我的代码中.

是页面.

这是我的代码:

    <?php

function getHTML($url,$timeout)
{
       $ch = curl_init($url); // initialize curl with given url
       curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]); // set  useragent
       curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // write the response to a variable
       curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // follow redirects if any
       curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); // max. seconds to execute
       curl_setopt($ch, CURLOPT_FAILONERROR, 1); // stop when it encounters an error
       return @curl_exec($ch);
}

$html=getHTML("http://www.booking.com/searchresults.en.html?dcid=1;checkin_monthday=25;checkin_year_month=2014-7;checkout_monthday=26;checkout_year_month=2014-7;city=-1461464;class_interval=1;csflt=%7B%7D;interval_of_time=undef;no_rooms=1;or_radius=0;property_room_info=1;review_score_group=empty;score_min=0;src=city;ssb=empty;;nflt=ht_id%3D204%3Bclass%3D3%3B;unchecked_filter=class",10);

echo $html;

?>
Run Code Online (Sandbox Code Playgroud)

我确实打印了一个预订页面,但它没有考虑到URL中的参数,因为在页面上我得到它要求预订日期和城市...

我尝试在几个浏览器中粘贴此URL并隐藏窗口(以查看URL是否链接到Cookie或其他内容),并且它运行正常.也许我在cURL请求中错过了一个参数......

php curl web-scraping

-1
推荐指数
1
解决办法
1601
查看次数

除了完整的锚标签之外的所有内容 - Perl

我需要解析HTML文件并删除除锚标记之外的所有内容.例如:

<html>
    <body>
        <p>boom</p>
        <a href="/blah" rel="no-follow">Example</a>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我只需要保持:

<a href="/blah" rel="no-follow">Example</a>
Run Code Online (Sandbox Code Playgroud)

我正在使用cURL来检索html和我发现的一小段代码,除了标签的锚文本之外.这就是我正在使用的:

curl http://www.google.com 2>&1 | perl -pe 's/\<.*?\>//g'
Run Code Online (Sandbox Code Playgroud)

有一个简单的命令行方式来做到这一点?我的最终目标是将其放入bash脚本并执行它.我很难理解正则表达式和perl.

regex bash perl grep curl

-1
推荐指数
1
解决办法
330
查看次数

使用curl和json-c从C调用json webservice

我需要调用一个接受json对象的宁静的Web服务。我能够找到像libcurl这样的库来从C应用程序调用Web服务。我还能够找到像json-c这样的库来在C中创建一个json对象。

libcurl接受一个字符串并将其发布到给定的Web服务URL。无论如何,我可以发布使用json-c库创建的json对象,并使用curl库调用Web服务。

请让我知道是否有其他库可以同时允许我创建一个json对象并调用Web服务或任何其他替代解决方案。

谢谢您的帮助。

c json curl web-services

-1
推荐指数
1
解决办法
3288
查看次数

简单的卷曲-H在R中

我想要做

curl -H "Authorization: Basic YOUR_API_KEY" -d '{"classifier_id":155, "value":"TEST"}' "https://www.machinelearningsite.com/language/classify"
Run Code Online (Sandbox Code Playgroud)

我试过了

  h = getCurlHandle(header = TRUE, userpwd = YOUR_API_KEY, netrc = TRUE)
out <- getURL("https://www.machinelearningsite.com/language/classify?classifier_id=155&value=TEST", curl=h,ssl.verifypeer=FALSE)
Run Code Online (Sandbox Code Playgroud)

但它说方法不允许

curl r rcurl

-1
推荐指数
1
解决办法
830
查看次数

Curl输出变量名而不是其内容

下面是我的代码,经过整夜搜索和工作后,我终于想出了如何让它发送短信.问题是我不能在正文消息中留下空格而且它不显示值$smsmessage.

extract($_POST);

$smsmessage1 = "This is the sms that will be sent";
$smsmessage = urlencode($smsmessage1);

//set POST variables
$url = 'http://www.mysmsgateway.com/bulksms/bulksms.php?username=myemail@domain.com&password=123456789&message=$smsmessage&mobile=2348035081907&sender=Boss';
$fields = array();

//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string,'&');

//open connection
$ch = curl_init();

//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);

//execute post
$result = curl_exec($ch);

//close connection
curl_close($ch); 
Run Code Online (Sandbox Code Playgroud)

上面的代码发送消息,但将输出$smsmessage而不是$smsmessage从上面获取值.

php curl

-2
推荐指数
1
解决办法
254
查看次数

PHP除以零?

两小时前,以下脚本有效.现在由于某种原因,我收到一个错误"警告:在第30行的_中除以零".这是脚本.任何人都可以告诉我我做错了什么以及如何纠正它?

基本上这个脚本是从另一个网站上的两个元素中提取数据,将它们分开得到一个数字,而这个数字又用于设置元素的宽度.对此进行了一段时间的故障排除 非常感谢提前!

<?php
define("FFF_SIXDEGREES", "http://www.stayclassy.org/fundraise?fcid=257739");

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, FFF_SIXDEGREES);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

if(!($results = curl_exec($curl))) {
    print("{ \"total\": \"$0.00\" }");
    return;
}

$pattern = '/<li class="goalTitle">Raised so far:<\/li>\s*<li>\$([\d\.,]+)<\/li>/';
preg_match($pattern, $results, $matches);

$total = $matches[1];
$total = str_replace(",", "", $total);

// printf("<h2 class=\"raised-total\">$%s</h2>", formatMoney($total, true));

$pattern2 = '/<li class="goalTitle">My goal:<\/li>\s*<li>\$([\d\.,]+)<\/li>/';
preg_match($pattern2, $results, $matches);

$total2 = $matches[1];
$total2 = str_replace(",", "", $total2);

// printf("<h2 class=\"goal-total\">$%s</h2>", formatMoney($total2, true));

$diff = ($total/$total2) * 100; // THIS IS THE LINE OF CODE …
Run Code Online (Sandbox Code Playgroud)

php curl

-2
推荐指数
1
解决办法
174
查看次数

如何在数据库中添加被删除的网站数据?

我想存储:

  1. 产品名称
  2. Categoty
  3. 子目录
  4. 价钱
  5. 产品公司.

在我的名为products_data的表中,其filds名称为PID,product_name,category,subcategory,product_price和product_company.

curl_init()在php中使用函数首先废弃网站URL,接下来我想将产品数据存储在我的数据库表中.以下是我迄今为止所做的事情:

$sites[0] = 'http://www.babyoye.com/';

foreach ($sites as $site)
{
    $ch = curl_init($site);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $html = curl_exec($ch);

    $title_start = '<div class="info">';

    $parts = explode($title_start,$html);
    foreach($parts as $part){
        $link = explode('<a href="/d/', $part);

        $link = explode('">', $link[1]);
        $url = 'http://www.babyoye.com/d/'.$link[0];

        // now for the title we need to follow a similar process:

        $title = explode('<h2>', $part);

        $title = explode('</h2>', $title[1]);

        $title = strip_tags($title[0]);

        // INSERT DB CODE HERE e.g.

        $db_conn = …
Run Code Online (Sandbox Code Playgroud)

php curl web-scraping

-2
推荐指数
1
解决办法
5358
查看次数

标签 统计

curl ×10

php ×7

web-scraping ×2

bash ×1

c ×1

facebook ×1

file-get-contents ×1

grep ×1

json ×1

perl ×1

r ×1

rcurl ×1

regex ×1

url ×1

web-crawler ×1

web-services ×1

xml ×1