如何使用 GET(没有 Selenium 等)从网站检索 HTML 代码?

How to retrieve HTML code from a website using GET (without Selenium etc)?

提问人:Makinaru 提问时间:10/28/2023 更新时间:10/31/2023 访问量:33

问:

当通过 PHP 向 https://comeback.pw/cats/146x?page=1 发出 GET 请求时,我收到不同的 HTML 响应,而在常规浏览器中一切正常。可能是什么问题?

似乎有 JavaScript 内容保护。是否有可能绕过它?当我从 Chrome 复制 cURL 请求并将其导入 Postman 时,它会返回正确的数据。但是,如果我再次在 Postman 中执行相同的请求,我会收到不同的响应。可能导致此行为的原因是什么?

php 解析 get postman wget

评论

0赞 Honk der Hase 10/29/2023
显然,内容提供商不希望脚本以任何方式废弃内容......您应该联系提供商并询问访问其内容的合法方式......如果他仍然不想要它,那就接受它。

答:

0赞 hanif zekri 10/28/2023 #1

我用这样的简单卷曲进行测试,似乎没问题。

<?php

$url = "https://comeback.pw/cats/146x?page=1";
$ch = curl_init();
curl_setopt($ch, CURLOPT_REFERER, 'https://google.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_URL, $url);
$response = curl_exec($ch);
curl_close($ch);

print_r($response);

?>

评论

0赞 Makinaru 10/29/2023
不,它对我不起作用。我变得那样了<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="refresh" content="10;URL=/ciez2a"> </head> <body> <script type="text/javascript"> function md5cycle(e,t){var i=e[0],a=e[1],r=e[2],n=e[3];a=ii(a=ii(a=ii(a=ii(a=hh(a=hh(a=hh(a=hh(a=gg(a=gg(a=gg(a=gg(a=ff(a=ff(a=ff(a=ff(a,r=ff(r,n=ff(n,i=ff(i,a,r,n,t[0],7,-680876936),a,r,t[1],12,-389564586),i,a,t[2],17,606105819),n,i,t[3],22,-10445 25330),r=ff(r,n=ff(n,i=ff(i,a,r,n,t[4],7,-176418897),a,r,...
0赞 hanif zekri 10/29/2023
您似乎正在使用 localhost。应使用标准主机或服务器。
0赞 Daweo 10/31/2023 #2

我收到不同的 HTML 响应,而一切正常 一个普通的浏览器。可能是什么问题?

该页面具有 JavaScript,在执行后确实会更改该页面的内容。GNU 不支持 JavaScript 执行。你需要工具。我建议看看 PhantomJS,尽管我不确定它是否不是您问题标题的一部分。wget