Introducation
Python爬虫学习目录
本文简单说明了网站的反爬虫机制cookie,以及session。
cookie
关于cookie的介绍,参看wiki-cookie,(上不去维基?别说你没看到我博客左侧和置顶的修改hosts使用谷歌服务的链接,其实那个hosts里还经常有twitter的映射)
在上一节中,就是利用浏览器上已经登录的有效的cookie和特殊的javax.faces.ViewState值进行的实验环境下的抓取页面。而实际上,这个网站用了一些手段来防止简单的爬虫抓取,浏览器长时间停在页面无操作会弹出这样的提示框,
提示你session已过期。如果网站没有检测session的过期,那么可以利用一个cookie的有效期保持长时间的抓取可用状态。
通过resource可以看到cookie相关的部分,有个超时的时间字段,这就是它的有效期。
从响应中获取cookie
requests已经封装好了很多操作,自动管理cookie, session保持连接,抓取数据后结束
那么我们就可以先访问该站的某个页,建立了session连接之后,获取cookie,再伪造头进行访问。
>>> from bs4Test import *
>>> s = requests.session()
>>> s.get("https://www.gebiz.gov.sg/ptn/opportunity/BOListing.xhtml?origin=menu")
>>> print(s.cookies)
# 下面是打印结果
, http://www.gebiz.gov.sg/>