<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[沧海一粟]]></title> 
<link>http://www.dzhope.com/index.php</link> 
<description><![CDATA[Web系统架构与服务器运维,php开发]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[沧海一粟]]></copyright>
<item>
<link>http://www.dzhope.com/post//</link>
<title><![CDATA[PHP CURL获取cookies模拟登录的方法]]></title> 
<author>jed &lt;jed521@163.com&gt;</author>
<category><![CDATA[服务器技术]]></category>
<pubDate>Mon, 30 May 2016 01:42:14 +0000</pubDate> 
<guid>http://www.dzhope.com/post//</guid> 
<description>
<![CDATA[ 
	要提取google搜索的部分数据，发现google对于软件抓取它的数据屏蔽的厉害，以前伪造下 USER-AGENT 就可以抓数据，但是现在却不行了。利用抓包数据发现，Google 判断了 cookies，当你没有cookies的时候，直接返回 302 跳转，而且是连续几十个302跳转，根本抓不了数据。<br/>因此，在发送搜索命令时，需要先提取 cookies 并保存，然后利用保存下来的这个cookies再次发送搜索命令即可正常抓数据了。这其实和论坛的模拟登录一个道理，先POST登录，获取cookies并保存，然后利用这个cookies访问就可以了。<br/>PHP 代码如下：<br/><div class="code"><br/><br/>&lt;?php<br/>header(&#039;Content-Type: text/html; charset=utf-8&#039;);<br/><br/>$cookie_file = dirname(__FILE__).&#039;/cookie.txt&#039;;<br/>//$cookie_file = tempnam(&quot;tmp&quot;,&quot;cookie&quot;);<br/><br/>//先获取cookies并保存<br/>$url = &quot;http://www.google.com.hk&quot;;<br/>$ch = curl_init($url); //初始化<br/>curl_setopt($ch, CURLOPT_HEADER, 0); //不返回header部分<br/>curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //返回字符串，而非直接输出<br/>curl_setopt($ch, CURLOPT_COOKIEJAR,&nbsp;&nbsp;$cookie_file); //存储cookies<br/>curl_exec($ch);<br/>curl_close($ch);<br/><br/>//使用上面保存的cookies再次访问<br/>$url = &quot;http://www.google.com.hk/search?oe=utf8&amp;ie=utf8&amp;source=uds&amp;hl=zh-CN&amp;q=qq&quot;;<br/>$ch = curl_init($url);<br/>curl_setopt($ch, CURLOPT_HEADER, 0);<br/>curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);<br/>curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); //使用上面获取的cookies<br/>$response = curl_exec($ch);<br/>curl_close($ch);<br/><br/>echo $response;<br/>?&gt;<br/></div><br/>Tags - <a href="http://www.dzhope.com/tags/php/" rel="tag">php</a> , <a href="http://www.dzhope.com/tags/curl/" rel="tag">curl</a>
]]>
</description>
</item><item>
<link>http://www.dzhope.com/post//#blogcomment</link>
<title><![CDATA[[评论] PHP CURL获取cookies模拟登录的方法]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.dzhope.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>