python爬虫cookie模拟登陆

python爬虫cookie模拟登陆

自己学习网络上面的课外知识有一年多了,自己也比较喜欢去学那些,在大学里老师不会教你去学爬虫,开发web,数据分析,unity3d,Linux,git等等,但是我觉得这些才是真正有用的,而那些课程几乎是靠一门丢一门,真正实用的没有多少,这是我的感觉。
然后,自己在网上学这学那学了一年多了,学起来感觉也很艰难,一步一个脚印,总是会遇到一些坑,自己卡一段时间,但是通过百度看博客什么的,寻找解决思路,最终竟然云开雾散。
不多说了,直接上代码。

  • 代码
import requests
from lxml import etree
headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:71.0) Gecko/20100101 Firefox/71.0',
    'Cookie':'jianyue_session=eyJpdiI6IkRkYXB3VFJENUkrNUJsZVdcL3k5NmJRPT0iLCJ2YWx1ZSI6IlcrallsRnVcL01zOGVoUnFzYjJNQ1dWYkhldUNnZ0hiUkY2Rzc2blA5dnhtRm8wbjRkMUpJMVQ3VURzUThCQ2RJN3pndytKWWJ6ZVJEZW5BK0tCSHRnZz09IiwibWFjIjoiYzc5YzM1NWZjODVmYzQyYWE3M2Y4ZmRhMGI5MzlhYTRmMTMwMzQyN2U1MWMzMTMwZjg1NTE1NGZlM2FiNTI4YSJ9; expires=Tue, 10-Dec-2019 14:31:47 GMT; Max-Age=7200; path=/; httponly'
}
params={
    "_token":"P1o8Fz9ZOAuBojBsNGNfPa9vivr5PqRBUFwstL8I",
    "mobile":'15263819410',
    "password":"15263819410",
    "remember":"1"
}
session = requests.Session()
psot_url = 'http://jianyue.pro/login'
session.post(psot_url,data=params,headers=headers)
resopnse = session.get('http://jianyue.pro/app/ebook/details/3665',headers=headers)
resopnse.encoding='utf-8'
htmlEmts_name = etree.HTML(resopnse.text).xpath('/html/body/div[4]/div/div/img/@src')
print(htmlEmts_name)
  • 运行结果
G:\Project\Pycharm\Selenium\venv\Scripts\python.exe G:/Project/Pycharm/Selenium/简阅/jy_1.py
200
['/storage/ebookimg/3665.jpg']

Process finished with exit code 0

讲解

  • headers = {
    ‘User-Agent’:‘Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:71.0) Gecko/20100101 Firefox/71.0’,
    ‘Cookie’:‘jianyue_session=eyJpdiI6IkRkYXB3VFJENUkrNUJsZVdcL3k5NmJRPT0iLCJ2YWx1ZSI6IlcrallsRnVcL01zOGVoUnFzYjJNQ1dWYkhldUNnZ0hiUkY2Rzc2blA5dnhtRm8wbjRkMUpJMVQ3VURzUThCQ2RJN3pndytKWWJ6ZVJEZW5BK0tCSHRnZz09IiwibWFjIjoiYzc5YzM1NWZjODVmYzQyYWE3M2Y4ZmRhMGI5MzlhYTRmMTMwMzQyN2U1MWMzMTMwZjg1NTE1NGZlM2FiNTI4YSJ9; expires=Tue, 10-Dec-2019 14:31:47 GMT; Max-Age=7200; path=/; httponly’
    }

  • 一个字典,用来传递POST请求的参数(查看操作如下)
    在这里插入图片描述然后点击登陆
    在这里插入图片描述
    可以看到右边只有一个POST请求,其余的为GET请求,代码中所需要的cookie参数就在里面
    点击可以看到响应头与请求头
    请求头是你的浏览器向服务器发送的信息
    在这里插入图片描述可以看到里面最后一行参数就是浏览器信息,在header中加入这条数据可已伪装成浏览器,是一种简单的反爬虫方法。

  • 强调一点,cookie的信息在响应头中,作者在这里入坑了,然后以为现在网站的反扒机制很厉害,防止伪站发送请求。
    在这里插入图片描述我选的是中间的一条,我也不知到为什么,反正最后成功了。
    params={
    “_token”:“P1o8Fz9ZOAuBojBsNGNfPa9vivr5PqRBUFwstL8I”,
    “mobile”:‘15263819410’,
    “password”:“15263819410”,
    “remember”:“1”
    }
    这行代码里面传递的是表单参数
    在这里插入图片描述
    都是字典形式写入
    session.post(psot_url,data=params,headers=headers)#传入参数

  • 然后就是xpath语法筛选内容

  • 这种晒选方法我很推荐给新手们,当时最初学爬虫的时候用BeautifulSoup,正则表达式晒选,搞得自己云里雾里,xpath当时也没有学会,因为输出的数据是个空列表,或者是个不知到几进制的标签,然后就入坑放弃了,而且我学爬虫的目的是想批量爬去快手视频(现在想想觉得那时候真的是天真,不知到有多难)

  • 现在很清晰了,也再次“相信了可见皆可爬”的信念了。

  • xpath在后面的博客中将会介绍,这里就不多说了。
    在这里插入图片描述然后就得到了想要的结果
    加上域名就可以得到想要的图像地址了
    在这里插入图片描述

  • 我想要爬去这个网站的数据,然后自己做一个电子书资源网站,用python的Django框架,后期的工作是批量爬取,然后存到数据库。

  • 这是我的第一篇博客,本来不打算写博客的,自己在遇到问题的时候会搜到很多博客来寻早解答,但觉得那些有的不是那么实用,也有些老,而且有很多转发的。自己想写一些博客,做出一点贡献,也记录自己的学习历程,表达自己的想,还会收到一些回复,觉得挺好的

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值