多语言展示
当前在线:1196今日阅读:39今日分享:10

Python爬虫之与Cookies与Session同行

现在网络上的信息和资料越来越丰富,难免有一些资料我们想保存到自己的电脑中,但网站又没有提供下载的功能。这时候就是“爬虫”程序大显身手的时候了。但一般的爬虫程序虽然可以把网上的内容“抄”下来,但却没办法保存Cookies与Session的信息。今天要介绍的内容就是怎样通过Python携带Cookies与Session的信息进行网页爬取。
工具/原料

requests库

方法/步骤
1

Requests库安装:今天我们要使用Python的Requests库来实现程序的功能。所以首先要在环境里安装好Requests库。安装方式如下:1. 打开命令行对话框(在运行里输入cmd回车)2. 输入命令    pip install requests 或 pip3 install requests按照以上步骤就可以自动安装完成了。

3

带用户信息的爬取:先上一段代码:import requestsdata = {'firstname': 'python', 'lastname': 'study'}rq = requests.post('http://pythonscraping.com/pages/files/processing.php', data=data)print(rq.url)     # 访问的URL地址print(rq.text)   # URL资源返回的结果:Hello there, python study!注意:这里用了post方法把【firstname】与【lastname】两个字段及它们的值发送到了网站,网站处理后,再返回到我们的程序。要post的数据有哪些,你可以先用浏览器正常访问网站,然后通过如下图的浏览器的调试功能来查看。

4

要上传一张图片:import requestsdata = {'uploadFile': open('./image.jpg', 'rb')}rq = requests.post('http://httpbin.org/post', files=data)print(rq.url) print(rq.text) 要注意如果上传的数据类型不一样,post方法的第二个参数的名称也是不一样的。

5

带cookie的登陆:先看代码:import requestsdata = {'username': 'python', 'password': 'password'}rq = requests.post('http://pythonscraping.com/pages/cookies/welcome.php', data=data)  # 第一次访问print(rq.url)print(rq.cookies.get_dict())rq = requests.get('http://pythonscraping.com/pages/cookies/profile.php', cookies=rq.cookies)   # 第二次访问print(rq.text)大家都知道访问网站时,在一个页面登陆之后,访问该网站其它页面都存储了这个登陆的信息,有很多网站是通过【cookie】来做到这一点的。所以在上述代码的第二次访问时,还想保留第一次的登陆的状态就要在登陆时带上cookie信息。大家可以看看第二次访问带【cookies=rq.cookies】与不带的运行结果。

6

带session的登陆:因为cookie的安全性和效率上的问题,现在更多的网站是通过session来传递用户的相关数据。但当用户与网站断开连接后,相关的数据也是释放了。代码如下:import requestssession = requests.Session()data = {'username': 'python', 'password': 'password'}rq = session.post('http://pythonscraping.com/pages/cookies/welcome.php', data=data)  # 第一次访问print(rq.cookies.get_dict())rq = session.get('http://pythonscraping.com/pages/cookies/profile.php')   # 第二次访问print(rq.text)从上面的代码可以看到,第二次访问时因为使用了同一个session(会话),所以不用使用cookie信息也是可以正常保持以前的登陆状态的。

7

今天要讲的内容就是以上这些。希望对大家有所帮助。如果从网络上爬下来的是一个复杂的HTML结构的内容,可以看看另一篇关于如果解析HTML内容的文章,链接在下边。不要忘记投票加收藏哦。

推荐信息