我正在尝试阅读非公开 Google 网站页面的内容。我编写了用于读取公共 Google 站点页面的 php 脚本,因此它使用了 php 的 file_get_content()。
有没有办法登录 php 脚本,以便它能够访问非公开的 Google 站点页面?
我正在尝试阅读非公开 Google 网站页面的内容。我编写了用于读取公共 Google 站点页面的 php 脚本,因此它使用了 php 的 file_get_content()。
有没有办法登录 php 脚本,以便它能够访问非公开的 Google 站点页面?
如果您想访问需要某种帖子、会话或任何内容的页面,我建议您使用CURL
而不是 file_get_contents。您可以在文档中阅读更多相关信息。
如果它适用于谷歌的非公开页面,我不确定。不过,这可能会变成一个巨大的挑战:-)
找到了一些类似的旧代码。应该让你开始
/* Prepare cURL */
$ch = curl_init();
// set these according to the login form
$login_query = http_build_query(
array('username'=> 'username',
'password' => 'your_password',
'login' => 'log in'));
/* Set options */
curl_setopt($ch, CURLOPT_URL, 'www.yourpage.com');
curl_setopt($ch, CURLOPT_REFERER, 'www.yourpage.com'); //set this to whatever the normal login does
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3'); //set to something resonable
curl_setopt($ch, CURLOPT_TIMEOUT, 120);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies/cookie.txt'); // make sure directory is writable
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies/cookie.txt');
curl_setopt($ch, CURLOPT_POSTFIELDS, $login_query);
curl_setopt($ch, CURLOPT_POST, 1);
$urlcontent = utf8_encode(curl_exec($ch));
$curl_info = curl_getinfo($ch);
// at this point you are logged in... get your page
/* Initiate cURL request */
curl_setopt($ch, CURLOPT_URL, 'www.yourpage.com/what-you-want');
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3');
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_REFERER, 'www.yourpage.com');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies/cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies/cookie.txt');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
/* Send cURL request */
$result_data = utf8_encode(curl_exec($ch));
$curl_info = curl_getinfo($ch);
/* Close cURL */
curl_close($ch);
/* Handle result if any */
if ($this->curl_info['http_code'] == 200)
{
// at this point your page is in $result_data
}