使用phpQuery搜寻Google Android结果

时间:2019-02-16 22:58:15

标签: php web-scraping phpquery

我用以下脚本抓取Google排名:

<?php

include("phpQuery-onefile.php");
$url = "https://www.google.com/search?hl=en&output=search&start=1&q=shoes";

$ch = curl_init($url);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$page = curl_exec($ch);
curl_close($ch);

$doc = phpQuery::newDocument($page);

echo $doc['#ires cite'];

?>

我从Google Snippet(标题下方的绿色)中获取了URL地址。他使用了一个名为phpQuery的库来自动执行该过程。我搜索ID为#ires的Div中的所有“引证”。

这很完美,问题始于移动版本:

<?php

include("phpQuery-onefile.php");
$url = "https://www.google.com/search?hl=en&output=search&start=1&q=shoes";

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Linux; Android 7.1; Mi A1 Build/N2G47H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.83 Mobile Safari/537.36');
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$page = curl_exec($ch);
curl_close($ch);

$doc = phpQuery::newDocument($page);

echo $doc['#ires cite'];

?>

我将Android代理添加到Curl,Google展示了具有不同样式的移动版本。标题下方没有显示地址,但该地址以类似面包屑的格式显示。

我可以检查位置,但不能存储完整的URL,所以我必须从href中获取它。

那是我的问题,我无法获得完整的网址,有人可以帮助我吗?

我留下了Google移动版页面的一段源代码。 (摘要)

预先感谢

<div>

<a class="C8nzq BmP5tf" href="/url?sa=t&amp;source=web&amp;rct=j&amp;url=https://m.6pm.com/shoes&amp;ved=2ahUKEwjIn8mcosDgAhXxwVkKHT1gDF04ARAWMAB6BAgFEAE&amp;usg=AOvVaw1j59lxT1UHTjMA9CBFqgkQ" oncontextmenu="google.ctpacw.cm(this)">

<div aria-level="3" role="heading" class="MUxGbd v0nnCb">Shoes on Sale | 6pm</div>

<div class="zbELhe MUxGbd lyLwlc aLF0Z">

<span class="qzEoUe">https://m.6pm.com › shoes</span>

</div>

</a>

</div>

0 个答案:

没有答案