2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > python3.x爬虫 urllib和requests实现模拟登陆的具体步骤详解

python3.x爬虫 urllib和requests实现模拟登陆的具体步骤详解

时间:2023-01-09 00:36:41

相关推荐

python3.x爬虫 urllib和requests实现模拟登陆的具体步骤详解

对于为什么用模拟登陆不用我多说,有些网站只有你登陆进去之后才可以看到内容,而没登录的话爬下来的网页一般只有登陆界面的那一点,所以对于这种网站,就需要能够模拟登陆的状态去爬取页面信息

实现模拟登陆总体来说有两种大方向的方法,一种是利用自带的urllib库,另外一种是使用requests库,下面来分别讲解一下这两种方法具体是如何实现的。

一、使用urllib

首先要明确具体的思路是什么,才能动手编码实现。

我们的目的是为了能够模拟登陆的状态去爬取网页内容,那么只要我们得到了服务器返回的登陆用户的cookie,就可以在之后的请求中将cookie加进去。

为了获得服务器返回的cookie,我们第一次需要模拟登陆过程,并保存返回的cookie,这时候就需要确定如下信息:

登陆界面的url是什么?请求包中的信息是什么?cookie应该如何获取和保存?

下面就是我们实现的具体步骤:

一、cookie的处理

声明一个cookieJar的对象来保存cookie使用HTTPCookieProcessor来创建cookie处理器通过此处理器来构建opener

cookie_object = cookiejar.CookieJar()handler = request.HTTPCookieProcessor(cookie_object)opener = request.build_opener(handler)

二、构造登陆请求信息data

即登陆所需要的用户名以及登陆密码等,这个登陆信息的构造取决于你要登陆的网站是什么,所以具体情况要具体分析

data={'username':"your name"'password':"your psword"}

三、利用opener和登陆请求信息打开登陆链接,获得cookie(loginurl 取决于你的登陆链接)

req=urllib.request.Request(loginurl,data=data)respon=opener.open(req)

四、利用带cookie的opener打开其他需要登陆才能操作的界面,爬取信息(myrequrl为你要爬取的网页)

res=opener.open(myrequrl)

具体的实例请参看我写的这篇文章:人人网模拟登陆

二、使用requests

使用requests就比较简单了,几行代码就可以搞定

import requests#登录人人网的urlurl0 = "/PLogin.do"#登录到个人主页的urlurl1 = ""data = {'email':"yourname",'password':'yourpw'}#进行登录,并保存cookiereq = requests.Session()response = req.post(url0,data=data)#可以直接访问个人主页了zhuye = req.get(url1)print(zhuye.text)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。