【问题标题】:How to click on <a> tag using Curl如何使用 Curl 点击 <a> 标签
【发布时间】:2017-08-18 01:14:21
【问题描述】:

如何点击标签然后获取页面内容

我正在使用这个脚本来获取 aliexpress 页面内容以获取 cmets

$url = "some link";
$ch = curl_init();
curl_setopt( $ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1" );
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true );
curl_setopt( $ch, CURLOPT_ENCODING, "" );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_AUTOREFERER, true );
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
   $content = curl_exec( $ch );

Aliexpress 反馈点击以下标签后使用 Javascript 获取 cmets

  <li data-trigger="feedback" data-role="trigger" class="ui-switchable-trigger">
    <a href="javascript:;" data-spm-anchor-id="2114.10010108.0.0">Feedback (27)</a>
  </li>

如果可能的话,你能指导我吗

【问题讨论】:

  • 你不能用 curl 做这样的事情。看看硒

标签: javascript php curl


【解决方案1】:

您尝试获取的页面正在使用 JavaScript 加载内容。

使用file_get_contents,JavaScript 代码将不会运行,因此您无法获取 href 数据,除非触发可能涉及其他动态请求的点击。

Selenium 可能会帮助您,因为它是一种受控的 Web 浏览器,因此它可以读取/获取动态内容。

【讨论】:

    【解决方案2】:

    你可以做的是使用 curl 来获取页面内容,然后一旦你有了内容,就得到你想要的 a 标签的 a 标签的 href 值,然后在那个 href 链接上运行另一个 curl 函数来得到那个标签的页面内容。

    编辑 @Phil 是对的。您必须使用 curl 获取 data-spm-anchor-id 值。但首先,您需要在单击链接后在 lbrowser 的检查器中检查网络,以查看他们如何生成链接以获取带有 data-spm-anchor-id 的页面。然后,您也许可以抓取 data-spm-anchor-id 并将其塞入一个 URL(单击链接后从浏览器的网络中获取),您可以再次使用 curl 访问该 URL。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-19
      • 2020-09-29
      • 1970-01-01
      • 2011-05-16
      • 2019-05-15
      • 1970-01-01
      • 2012-04-05
      • 2023-02-26
      相关资源
      最近更新 更多