post请求跳转页面_Python post请求模拟登录淘宝并爬取商品列表!

本文介绍如何使用Python进行POST请求模拟登录淘宝,分析登录过程,并爬取商品列表。通过分析登录页面和抓包工具理解请求过程,构造POST字典,处理登录和爬取过程中的关键数据。此外,还探讨了页面URL的规律,代理的获取,以及如何处理网页异步加载的内容。最后,文章展示了登录和爬取过程中可能遇到的问题及解决方案。
摘要由CSDN通过智能技术生成

一、前言

大概是一个月前就开始做淘宝的爬虫了,从最开始的用selenium用户配置到selenium模拟登录,再到这次的post请求模拟登录。一共是三篇博客,记录了我爬取淘宝网的经历。期间也有朋友向我提出了不少问题,比如滑块失败,微博登录失败等,可以说用selenium模拟登录这方面,坑特别多,直接加载用户配置又很笨重,效率低下。所以这次尝试构造post请求表单,模拟登录。

二、模拟登录

1)用浏览器走一遍登录过程

先把淘宝网的cookies全部清除,然后访问淘宝:https://www.taobao.com,这时候是不需要登录的。

在搜索框搜索iphone,立即跳出了登录页面,它的url是:https://login.taobao.com/member/login.jhtml?redirectURL=http%3A%2F%2Fs.taobao.com%2Fsearch%3Fq%3Diphone%26imgfile%3D%26commend%3Dall%26ssid%3Ds5-e%26search_type%3Ditem%26sourceId%3Dtb.index%26spm%3Da21bo.2017.201856-taobao-item.1%26ie%3Dutf8%26initiative_id%3Dtbindexz_20170306&uuid=f6dd176ff336683f5d47fc1cb16504af

很长很长,但标红的这部分url很重要,redirectURL是重定向url,登录后会跳转到这个url,当然这个是经过url编码的。

340f6d33caa22603fac97d820d61b214.png

90afe402a6b26b1162fca9f18200612b.png


其余后面的参数很乱,不知道有用没用,先试一下,把后面的参数去掉,访问https://login.taobao.com/member/login.jhtml?redirectURL=http%3A%2F%2Fs.taobao.com%2Fsearch%3Fq%3Diphone看看能不能行:

3fe6bb6a39f91e91145c1e0882fedabc.png

90afe402a6b26b1162fca9f18200612b.png


可以进入登录页面,那能不能登录呢?

a5c025a21c21418bbbee5f16d42c0655.png

90afe402a6b26b1162fca9f18200612b.png


好,正如上面所说,跳转到了这个url。

2)用抓包工具分析登录过程

既然可行,那么接着再来一次,这次看看这个过程都发起了哪些请求,提交了哪些数据。(别忘记清除cookies)

可以使用浏览器开发者模式也可以使用抓包工具Fiddler,使用浏览器的话要打开Preserve log

222f5ee70ecfd919fb966e8ef40b007c.png

90afe402a6b26b1162fca9f18200612b.png


我用的是Fiddler

设置抓取的User-Agents为Chrome

c3444d4d6f6db17b8663cd0b8f7ef68a.png

90afe402a6b26b1162fca9f18200612b.png


直接访问:https://login.taobao.com/member/login.jhtml?redirectURL=http%3A%2F%2Fs.taobao.com%2Fsearch%3Fq%3Diphone

点击登录。查看请求记录。

b51d4c4d5a7c4c4094a647db67ec9fca.png

90afe402a6b26b1162fca9f18200612b.png


这是两个非常重要的url

第一个是最开始访问的登录页面,一个普通的get请求,第二个就不同了,它是一个post请求,其中表单包含了大量的数据信息

0bb4208fe529a97333e0ffb871be9892.png

90afe402a6b26b1162fca9f18200612b.png


内容虽然很多,但经过我多次的测试和比对后,发现了如下几条规律:

1、loginId一眼就可以看出是账号,ua猜测为一种加密后的用户标识,password2猜测为加密后的密码。这三条信息可以当作固定值反复使用

2、_csrf_token, umidToken, hsiz隐藏在登录页面里

ebd7556a808e767eb0149ece14798f7d.png

90afe402a6b26b1162fca9f18200612b.png

3、其他的都是不变的

3)代码实战

文件名为login.py,类名为Login

class Login:
    """
    模拟登录并获取cookies
    """

    def __init__(self, u
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值