Php 如何使用文件获取内容(url)而不替换链接
这里没有 因此,我尝试使用Php 如何使用文件获取内容(url)而不替换链接,php,web-scraping,Php,Web Scraping,这里没有 因此,我尝试使用文件获取内容($url)进行抓取,但是返回的内容修改了所有链接(删除域名,并添加了许多奇怪的字符,以防锚定HREF和图像SRC) 这是我的想法,在我们通过文件获取内容()刮取之后 删除编码文本/l/?kh=-1&uddg=,然后 提取放在href的所有链接公共链接,对吗?所以在本例中,我使用了preg\u match\u all(参考:) 以下是模式:~href=“([^”]+)”(.*)>~ 循环我们提取的链接并替换为解码url(因为duckduckgo对url进
文件获取内容($url)
进行抓取,但是返回的内容修改了所有链接(删除域名,并添加了许多奇怪的字符,以防锚定HREF和图像SRC)
这是我的想法,在我们通过文件获取内容()
刮取之后
删除编码文本/l/?kh=-1&uddg=,然后
提取放在href的所有链接公共链接,对吗?所以在本例中,我使用了preg\u match\u all
(参考:)
以下是模式:~href=“([^”]+)”(.*)>~
循环我们提取的链接并替换为解码url(因为duckduckgo对url进行编码)
以下是我的示例代码:
<?php
$url = 'https://duckduckgo.com/html/?q=foo+bar';
$file = file_get_contents($url);
$file = str_replace("/l/?kh=-1&uddg=", "", $file);
preg_match_all('~href="([^"]+)"(.*?)>~', $file, $matches);
foreach ($matches[1] as $key => $link)
{
$file = str_replace($link, urldecode($link), $file);
}
var_dump ($file);
die();
这是我的想法,在我们通过文件获取内容()
刮取之后
删除编码文本/l/?kh=-1&uddg=,然后
提取放在href的所有链接公共链接,对吗?所以在本例中,我使用了preg\u match\u all
(参考:)
以下是模式:~href=“([^”]+)”(.*)>~
循环我们提取的链接并替换为解码url(因为duckduckgo对url进行编码)
以下是我的示例代码:
<?php
$url = 'https://duckduckgo.com/html/?q=foo+bar';
$file = file_get_contents($url);
$file = str_replace("/l/?kh=-1&uddg=", "", $file);
preg_match_all('~href="([^"]+)"(.*?)>~', $file, $matches);
foreach ($matches[1] as $key => $link)
{
$file = str_replace($link, urldecode($link), $file);
}
var_dump ($file);
die();
hi,感谢您的回答,关于搜索api,它不会返回json格式的搜索结果(当给出format=json时),但在我删除&format=json时会正常返回。所以,在搜索了一段时间后,发现它只是一个答案api,不是搜索,对吗?或者有希望让它工作吗?嗨,谢谢你的回答,关于搜索api,它不会返回json格式的搜索结果(当format=json被给出时),但是当我删除&format=json时,它会正常返回。所以,在搜索了一段时间后,发现它只是一个答案api,不是搜索,对吗?或者有什么希望让它工作吗?再见亲爱的苏布拉塔-我喜欢你的方法-它看起来很精致。感谢您与我们分享您的想法和代码!!!你好亲爱的苏布拉塔-我喜欢你的方法-它看起来很精致。感谢您与我们分享您的想法和代码!!!
<a class="result__url" href="https://en.wikipedia.org/wiki/Foobar">
en.wikipedia.org/wiki/Foobar
</a>
<?php
$url = 'https://duckduckgo.com/html/?q=foo+bar';
$file = file_get_contents($url);
$file = str_replace("/l/?kh=-1&uddg=", "", $file);
preg_match_all('~href="([^"]+)"(.*?)>~', $file, $matches);
foreach ($matches[1] as $key => $link)
{
$file = str_replace($link, urldecode($link), $file);
}
var_dump ($file);
die();