我使用file_get_contents来查明是否有我查看的搜索网址:
http://www.google.com/search?q=*a*+site:www.reddit.com/r/+-inurl:(/shirt/|/related/|/domain/|/new/|/top/|/controversial/|/widget/|/buttons/|/about/|/duplicates/|dest=|/i18n)&num=1&sort=date-sdate
如果我在浏览器中转到此网址,则会显示另一个文件,然后显示我在回显file_get_contents
$url = "http://www.google.com/search?q=*a*+site:www.reddit.com/r/+-inurl:(/shirt/|/related/|/domain/|/new/|/top/|/controversial/|/widget/|/buttons/|/about/|/duplicates/|dest=|/i18n)&num=1&sort=date-sdate";
$google_search = file_get_contents($url);
我的代码出了什么问题?
答案 0 :(得分:2)
没什么。问题是页面使用javascript和ajax来获取内容。因此,为了获得页面的“快照”,您需要“运行它”。也就是说,你需要解析php不能执行的javascript代码。
您最好的选择是使用无头浏览器,例如phantomjs。如果您搜索,您会找到一些解释如何操作的教程
注意强>
如果您正在寻找的是从搜索中检索原始数据的方法,您可能想尝试使用google's search api。
答案 1 :(得分:0)
我认为Google肯定会检查用户代理以避免任何类型的自动搜索。
因此,您至少应该使用CURL并定义一个合适的用户代理字符串(即与普通浏览器相同)以“欺骗”Google。
不知怎的,我担心欺骗谷歌会不那么容易,但也许我只是偏执狂,至少你可能会对CURL有所了解。