更多>>关于我们
西安鲲之鹏网络信息技术有限公司从2010年开始专注于Web(网站)数据抓取领域。致力于为广大中国客户提供准确、快捷的数据采集相关服务。我们采用分布式系统架构,日采集网页数千万。我们拥有海量稳定高匿HTTP代理IP地址池,可以有效获取互联网任何公开可见信息。
您只需告诉我们您想抓取的网站是什么,您感兴趣的字段有哪些,你需要的数据是哪种格式,我们将为您做所有的工作,最后把数据(或程序)交付给你。
数据的格式可以是CSV、JSON、XML、ACCESS、SQLITE、MSSQL、MYSQL等等。
更多>>技术文章
在做Web数据抓取时,有时会遇到一些页面进行了Cookie验证,爬虫拿不到正确的页面。
在开始之前,先介绍一个利器:火狐的抓包插件-Live HTTP headers
如何安装Live HTTP headers(假设你已经安装Firefox了)?
火狐工具栏:工具,附加组件,获取附件组件标签,搜索”Live HTTP headers“,找到后点击”安装“,安装成功后会提示重启Firefox,重启后插件安装完毕。
如何启动Live HTTP headers?
火狐工具栏:工具,点击菜单中的Live HTTP headers,界面如下图所示。
当我们在Firefox中打开新的链接或者页面JS与服务器进行了交互(Ajax)后,在Live HTTP headers中就会显示出浏览器发出的请求报文以及服务器的应答报文,如下图所示。
看来,玄机就藏于Cookie中了。
Cookie: adchemy_id=; division=huntsville; b=d9c83b52-4d41-11e0-acfb-0050569540c9; s=d9c84a48-4d41-11e0-acfb-0050569540c9; visited=true; _thepoint=ee1f3ef0522d06f05c475a21b4efc9d6; __utma=44473723.477787770.1300000481.1300000481.1300000481.1; __utmb=44473723.13.8.1300000750575; __utmc=44473723; __utmz=44473723.1300000481.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); _chartbeat2=5zbqenbjyupzen6c; __utmv=44473723.|2=Exp-deal_page_030311=price_for_value%2F0=1,
一种保守的做法就是在我们爬虫的请求头中加入上面的Cookie字段,这样肯定是没有问题的。但是这里面有很多的冗余数据可以去掉,留下标记参数即可。
如何确定标记参数呢?
我们可以将上面的Cookie参数挨个放入进行测试,直到返回正常页面为止。
一般来说,参数的名称都是有意义的,因此我们可以根据名称猜测,比如本例中 visited=true; 这个参数的可能性是最大的,因此我们可以先测试这个参数(如下图所示)。
经过测试发现,这个标记参数正是 visited=true;。 知道这个后,我们在爬虫中加入这个参数就能抓到正确的页面了。