打开Python爬虫实战练习页面用户名密码登录爬取后台数据_E01_Spiderbuf,只看到一个登录页面。
打开发者工具(F12),切换到Network(网络)标签页,然后回到网页上点击登录。这时候我们看到网页自动跳转到了一个数据页面,如果直接尝试把这个页面的URL放到Python爬虫代码里面执行,发现是访问不了的。
回到开发者工具,我们可以看到有个login的post请求,点击一下,在右边展开的详情页可以看到Status Code 的值是302,302是一个重定向代码。说明登录成功了,并让浏览器重定向到指定的网址。
而且在Headers的右边多出来了一个Payload标签页面,这里又是一个小知识:HTTP Post 携带的数据称为Payload(国内通常翻译成载荷),所以点击切换到Payload标签页,就能看到到我们刚才点击登录按钮时向后台发送的数据。
username: admin
password: 123456
注意:这里的Form Data是一种常见的HTML表单数据结构,跟Json不是一回事。不记得的小伙伴可以回头复习一下 S08 - http post请求的数据爬取
我们拿到了登录的数据,就可以尝试使用Python编写爬虫代码,构造这样的请求爬取网页。
url = 'http://spiderbuf.cn/playground/e01/login'
myheaders = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.164 Safari/537.36'}
payload = {'username':'admin','password':'123456'}
html = requests.post(url, headers=myheaders, data=payload).text
print(html)
发现我们的网页已经成功爬下来了,接着就使用xpath解析并获取我们需要的数据即可。
完整示例代码:示例代码