在做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;。 知道这个后,我们在爬虫中插手这个参数就可以抓到准确的页面了。