迄今为止,我们爬取的网页都是未登录状态下的网页信息,当我们想要获取登录之后的信息该怎么做呢?这时我们只需要使用requests库自带的post方法即可。使用post的过程比较简单,我们只需要构造讲一个字典,然后利用post上传到网页即可。使用方法如下:
import requests
params = {
'name':'xxx',
'password':'xxx'
}
res = requests.post(url,data=params)
print(res.text)
还是以豆瓣网为例https://www.douban.com/,打开豆瓣网,在‘’登录‘’选项右键检查。定位到元素所在位置。
找到form标签下的action属性(这是登录的URL)、以及input标签。找到之后我们就可以依据这些内容编写爬取程序了
import requests
#这是登录的URL
url = 'https://accounts.douban.com/login'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'}
params = {
'source':'index_nav',
#这是你的登录账号
'form_email':'xxx',
#这是你的登录密码
'form_password':'xxx'
}
html = requests.post(url,data=params,headers=headers)
print(html.text)