学习笔记



文章目录




cookie模拟登陆



有的时候,我们想要抓取一个网站,但是需要先登录才能访问它,如果不输入用户名和密码,我们就会一直停留在登录页面。

那我们该如何抓取呢?

这时,我们可以用cookie模拟登录。



获取cookie



我们以猫耳FM为例,咳咳咳,不知道有没有小伙伴玩猫耳啊,咳咳咳。
利用python爬虫(part15)--cookie模拟登陆_爬虫



我先进入网站首页,同时开启网络抓包(右键打开审查元素–>点击Network–>点击All),再登录我的账号,最后截取携带登录信息的cookie的数据包:
利用python爬虫(part15)--cookie模拟登陆_xml_02



数据包中的Request Headers信息:

accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
accept-encoding:gzip, deflate, br
accept-language:zh-CN,zh;q=0.9
cookie:Hm_lvt_91a4e950402ecbaeb38bd149234eb7cc=1588057449; Hm_lpvt_91a4e950402ecbaeb38bd149234eb7cc=1588059525; MSESSID=ss0bkgssd754dmosq13phbh7h6; token=5ea7ddff051cbec5bd6d1fd4%7Caef97ce98517a012%7C1588059647%7Cb46af3e345721caa; SERVERID=832fef4323c87b883d6becf9932943f1|1588059647|1588057447
referer:https://www.missevan.com/member/login
upgrade-insecure-requests:1
user-agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36



爬取我的简介



现在,我想获取我的主页中的简介:

利用python爬虫(part15)--cookie模拟登陆_xml_03



我创建一个py文件,专门放我的请求头信息。

my_headers.py

headers = {
"accept":"image/webp,image/apng,image/*,*/*;q=0.8",
"accept-language":"zh-CN,zh;q=0.9",
"cookie":"Hm_lvt_91a4e950402ecbaeb38bd149234eb7cc=1588057449; Hm_lpvt_91a4e950402ecbaeb38bd149234eb7cc=1588059525; MSESSID=ss0bkgssd754dmosq13phbh7h6; token=5ea7ddff051cbec5bd6d1fd4%7Caef97ce98517a012%7C1588059647%7Cb46af3e345721caa; SERVERID=832fef4323c87b883d6becf9932943f1|1588059647|1588057447",
"referer":"https://www.missevan.com/member/login",
"user-agent":"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
}



python爬虫代码:

# -*- coding: utf-8 -*-

import requests
import my_headers
from lxml import etree

url = 'https://www.missevan.com/mperson/homepage'
xpath = '//*[@id="t_u_n_a"]/text()'

html = requests.get(url = url, headers = my_headers.headers).content.decode('utf-8')
parse_html = etree.HTML(html)
profit = parse_html.xpath(xpath)

print('简介:', profit)



输出:

简介: ['\n                我是山羊的简介            ']



成功GET!




后记:如果我在浏览器上退出猫耳FM的登录了,程序即使带有cookie也会无法访问到我们要的HTML页面。如果我们保持浏览器的登录状态,但是headers中不写cookie,也无法获取到我们想要爬取的简介。

总之,就是出现了上面两种状况,我现在有点迷。