python 获取cookie_爬取网站要登录?46行代码解决问题,python爬虫随心所欲

喜欢编程,热爱分享,希望能结交更多志同道合的朋友,一起在学习Python的道路上走得更远!

15740420aafc7875c55b802c11a476c4.png

当你在爬某些网站的时候,需要你登录才可以获取数据,咋整?莫慌,把这几招传授给你,让你以后随心所欲的爬!

021bfa6c887a3a6dea7967d7ce0d9204.png

一:Cookie大法

你平常网站浏览的时候,是不是发现你只要登录一次,就可以一直看到你想要的内容,过了一阵子才需要再次登录?其实每个使用这个网站的人,服务器都会给他一个 Cookie,下次你再请求数据的时候,顺带把这个 Cookie 传过去,服务器一看,有登录过,直接返回数据给他吧!

在服务中还可以设置 Cookie 的有效时间,也就是说,当你下次携带一个过期了的 Cookie 给服务器的时候,虽然知道你是老客户,但是还是需要你重新再登录一次,然后再给你一个有效的 Cookie,Cookie 的时长周期是服务器那边定的。

d3c21bcb07e71be8484656306c9b3f89.png

了解了这一点之后,我们就来正式解决问题吧!我们以“逼乎”为例:

https://biihu.cc/account/login/

输入地址之后,按一下 F12,点击 network 标签,然后登录你的帐号,然后点击其中一个,你就可以看到在 Request Headers 有你的 Cookie

964a6ed4a11218a53785c105399a4991.png

有了 Cookie 之后,我们在代码中直接获取我的个人信息。

1 import requests2 headers = {3 # 假装自己是浏览器4 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/73.0.3683.75 Chrome/73.0.3683.75 Safari/537.36',5 # 把你刚刚拿到的Cookie塞进来6 'Cookie': 'eda38d470a662ef3606390ac3b84b86f9; Hm_lvt_f1d3b035c559e31c390733e79e080736=1553503899; biihu__user_login=omvZVatKKSlcXbJGmXXew9BmqediJ4lzNoYGzLQjTR%2Fjw1wOz3o4lIacanmcNncX1PsRne5tXpE9r1sqrkdhAYQrugGVfaBICYp8BAQ7yBKnMpAwicq7pZgQ2pg38ZzFyEZVUvOvFHYj3cChZFEWqQ%3D%3D; Hm_lpvt_f1d3b035c559e31c390733e79e080736=1553505597',7 }8 session = requests.Session()9 response = session.get('https://biihu.cc/people/wistbean%E7%9C%9F%E7%89%B9%E4%B9%88%E5%B8%85', headers=headers)10 print(response.text)

运行后可以发现不用登录就可以直接拿到自己的个人信息了

1 2 3 4 5 6 7 8 小帅b真TM帅 的个人主页 - 逼乎9 10 11 12 13 14 15 16 17 18 19 36 

除此之外还有一个方法

二:Selenium 自动登录法

获取到两个输入框的元素,再获取到登录按钮,往输入框写你的帐号密码,然后自动点击一下登录​

username = WAIT.until(EC.presence_of_element_located((By.CSS_SELECTOR, "帐号的selector")))password = WAIT.until(EC.presence_of_element_located((By.CSS_SELECTOR, "密码的selector")))submit = WAIT.until(EC.element_to_be_clickable((By.XPATH, '按钮的xpath')))username.send_keys('你的帐号')password.send_keys('你的密码')submit.click()

登录完之后拿到 Cookie

1 cookies = webdriver.get_cookies()

有了 Cookie 你就可以拿到你想要的数据了,以上就是本文的全部内容,希望对大家的学习有所帮助,觉得文章还可以的话不妨收藏起来慢慢看,有任何意见或者看法欢迎大家评论!

我是一名python开发工程师,整理了一套python的学习资料,如果你想提升自己,对编程感兴趣,关注我并在后台私信小编:“08”即可免费领取资料!希望对你能有所帮助!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值