cUrl获取包含“ü”的URL的内容U + 00FC%c3%bc

希维克

我正在尝试获取有关杂货,标题,图像,价格等的信息。

所有其他URL都可以正常工作,并且cUrl响应完全符合预期。

我遇到的问题是,当URL包含带重音的拉丁语/非标准url /非英语字符(如ü或è)时。

我已经尝试了所有可以想到的方法,但是可能缺少一个简单的解决方案:

stringtest.php?url=http://www.sainsburys.co.uk/shop/gb/groceries/desserts/g%C3%BC-lemon-pots-3x45g
stringtest.php?url=http://www.sainsburys.co.uk/shop/gb/groceries/desserts/gü-lemon-pots-3x45g
stringtest.php?url=http%3A%2F%2Fwww.sainsburys.co.uk%2Fshop%2Fgb%2Fgroceries%2Fdesserts%2Fg%C3%BC-lemon-pots-3x45g

这是我测试cUrl的代码:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
  </head>
  <body>
<?php
  $url = $_GET['url'];

  echo curlUrl($url);

  function curlUrl($url){
    $ch = curl_init();
    $timeout = 5;
    $cookie_file = "/tmp/cookie/cookie1.txt";
    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    $html = curl_exec($ch);
    curl_close($ch);

    return $html;
  }

?>
  <form action="stringtest.php" method="get" id="process">
    <input type="text" name="url" placeholder="Url" autofocus>
    <input type="submit">
  </form>
  </body>
</html>

我从cUrl获得的结果是Sainsburys的404页面,声称找不到该页面。从网址列复制http://www.sainsburys.co.uk/shop/gb/groceries/desserts /gü-lemon-pots-3x45g会导致复制ü(%C3%BC)的URL编码版本,如预期的。在浏览器中输入URL时,ü和%C3%BC都可以用来访问实际的产品页面,那么为什么Sainsburys在提示时会返回404?

我已经尝试了各种方法,例如urldecode()使用浏览器使用的确切标头进行,但无济于事。

查尔斯

似乎是塞恩斯伯里(Sainsbury)网站本身的问题。

当您不发送有效的cookie时,服务器将返回404。

您是否尝试过重新加载?

我试过了

stringtest.php?url=http://www.sainsburys.co.uk/shop/gb/groceries/desserts/gü-chocolate-ganache-pots-3x45g

它与有效的cookie一起使用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用 C# 从 URL 获取内容后跟此错误“WebRequest 不包含 GetRespone 的定义和...”

来自分类Dev

使用 C# 从 URL 获取内容得到这个错误“WebRequest 不包含 GetRespone 的定义和……”

来自分类Dev

C3图表-可点击的工具提示内容

来自分类Dev

C3 JS折线图获取日期错误

来自分类Dev

StreamReader读取\ u00fc,但Postman读取确定

来自分类Dev

\\ u00c3 \\ u00a9在哪个世界变成é?

来自分类Dev

在bash脚本中使用curl并获取curl:(3)在URL中发现非法字符

来自分类Dev

C#从URL获取内容,如Facebook和linkedin做

来自分类Dev

如何从C3 JS图表的选择器获取对象引用

来自分类Dev

获取 json 数据中的值计数并根据 c3 表的值创建变量

来自分类Dev

获取 URL 值以加载包含内容的弹出框

来自分类Dev

使用PHP获取和返回媒体URL(m3u8)

来自分类Dev

PHP Curl获取页面内容

来自分类Dev

cURL从https域获取内容

来自分类Dev

如何使用c#登录网站并获取重定向的url内容

来自分类Dev

读取JSON:“ \ u00c5 \ u0082”是什么编码?如何获取到unicode对象?

来自分类Dev

上载到预设的S3 URL从浏览器获取403,但可以在curl中工作

来自分类Dev

C#-获取html内容

来自分类Dev

使用PHP curl获取登录内容

来自分类Dev

使用CURL获取wordpress的帖子内容

来自分类Dev

cURL无法获取特定网站的内容

来自分类Dev

Angular Material渲染C3图表

来自分类Dev

查询=未知系统变量'c3'

来自分类Dev

C3 JS ondragend事件

来自分类Dev

C3 标题左对齐

来自分类Dev

#在C ++中包含HTTP URL

来自分类Dev

如何使curl调用包含空间的远程URL

来自分类Dev

使用 Javascript 从 URL 获取内容

来自分类Dev

获取包含以使用多个单词的内容

Related 相关文章

热门标签

归档