返回顶部
首页 > 资讯 > 后端开发 > Python >Python 爬虫模拟登陆知乎
  • 389
分享到

Python 爬虫模拟登陆知乎

爬虫Python 2022-06-04 18:06:41 389人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

在之前写过一篇使用python爬虫爬取电影天堂资源的文章,重点是如何解析页面和提高爬虫的效率。由于电影天堂上的资源获取权限是所有人都一样的,所以不需要进行登录验证操作,写完那篇文章后又花了些时间研究了一下p

在之前写过一篇使用python爬虫爬取电影天堂资源的文章,重点是如何解析页面和提高爬虫的效率。由于电影天堂上的资源获取权限是所有人都一样的,所以不需要进行登录验证操作,写完那篇文章后又花了些时间研究了一下python模拟登陆,网上关于这部分的资料很多,很多demo都是登陆知乎的,原因是知乎的登陆比较简单,只需要post几个参数,保存cookie。而且还没有进行加密,很适合用来做教学。我也是是新手,一点点的摸索终于成功登陆上了知乎。就通过这篇文章分享一下学习这部分的心得,希望对那些和我一样的初学者有所帮助。

  先来说一下,爬虫模拟登陆的基本原理吧,我也是刚开始接触对于一些深层次的东西也不是掌握的很清楚。首先比较重要的一个概念就是cookie,我们都知道Http是一种无状态的协议,也就是说当一个浏览器客户端向服务器提交一个request,服务器回应一个response后,他们之间的联系就中断了。这样就导致了这个客户端在向服务器发送请求时,服务器无法判别这两个客户端是不是一个了。这样肯定是不行的。这时cookie的作用就体现出来了。当客户端向服务器发送一个请求后,服务器会给它分配一个标识(cookie),并保存到客户端本地,当下次该客户端再次发送请求时连带着cookie一并发送给服务器,服务器一看到cookie,啊原来是你呀,这是你的东西,拿走吧。所以一个爬虫模拟登陆就是要要做到模拟一个浏览器客户端的行为,首先将你的基本登录信息发送给指定的url,服务器验证成功后会返回一个cookie,我们就利用这个cookie进行后续的爬取工作就行了。

   我这里抓包用的就是chrome的开发工具,不过你也可以使用Fiddler、Firebug等都可以,只不过作为一名前端er对chrome有一种特殊的喜爱之情。准备好工具接下来就要打开知乎的登陆页面并查看https://www.zhihu.com/#signin 我们可以很容易发现这个请求 发送的就是登录信息,当然我使用手机登陆的 用邮件登陆的是最后结尾是email

查看图片

所以我们只需要向这个地址post数据就行了

查看图片

phone_num 登录名
passWord 密码
captcha_type 验证码类型(这个参数着这里并没有实质作用)
rember_me 记住密码

_xsrf 一个隐藏的表单元素 知乎用来防御CSRF的(关于CSRF请打开这里) 我发现这个值是固定所以就在这里直接写死了 若果有兴趣的同学可以写一个正则表达式 把这部分的值提取出来 这样更严谨一些。


# -*- coding:utf-8 -*-
import urllib2
import urllib
import cookielib
posturl = 'https://www.zhihu.com/login/phone_num'
headers={
'User-Agent':'Mozilla/5.0 (windows NT 6.1; WOW64) '
'AppleWEBKit/537.36 (Khtml, like Gecko) '
'Chrome/52.0.2743.116 Safari/537.36',
'Referer':'https://www.zhihu.com/'
}
value = {
'password':'*****************',
'remember_me':True,
'phone_num':'*******************',
'_xsrf':'**********************'
}
data=urllib.urlencode(value)
#初始化一个Cookiejar来处理Cookie
cookieJar=cookielib.CookieJar()
cookie_support = urllib2.HTTPCookieProcessor(cookieJar)
#实例化一个全局opener
opener=urllib2.build_opener(cookie_support)
request = urllib2.Request(posturl, data, headers)
result=opener.open(request)
print result.read()

当你看到服务器返回这个信息的时候就说明你登陆成功了


{"r":0,
"msg": "u767bu5f55u6210u529f"
}#翻译过来就是 “登陆成功” 四个大字

然后你就可以用这个身份去抓取知乎上的页面了


page=opener.open("https://www.zhihu.com/people/yu-yi-56-70")
content = page.read().decode('utf-8')
print(content)

这段代码就是通过实例化一个opener对象保存成功登陆后的cookie信息,然后再通过这个opener带着这个cookie去访问服务器上关于这个身份的完整页面。更复杂的比如微博的登陆这种对请求的数据进行加密了的后面有时间再写出来,与大家分享

--结束END--

本文标题: Python 爬虫模拟登陆知乎

本文链接: https://lsjlt.com/news/14180.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python 爬虫模拟登陆知乎
    在之前写过一篇使用python爬虫爬取电影天堂资源的文章,重点是如何解析页面和提高爬虫的效率。由于电影天堂上的资源获取权限是所有人都一样的,所以不需要进行登录验证操作,写完那篇文章后又花了些时间研究了一下p...
    99+
    2022-06-04
    爬虫 Python
  • python3爬虫-知乎登陆
    py文件: from fake_useragent import UserAgent import requests from http import cookiejar import base64 from PIL import Im...
    99+
    2023-01-31
    爬虫
  • Python使用Srapy框架爬虫模拟登陆并抓取知乎内容
    一、Cookie原理 HTTP是无状态的面向连接的协议, 为了保持连接状态, 引入了Cookie机制 Cookie是http消息头中的一种属性,包括: Cookie名字(Name)Cookie的值(V...
    99+
    2022-06-04
    爬虫 框架 内容
  • Python爬虫之模拟知乎登录的方法教程
    前言 对于经常写爬虫的大家都知道,有些页面在登录之前是被禁止抓取的,比如知乎的话题页面就要求用户登录才能访问,而 “登录” 离不开 HTTP 中的 Cookie 技术。 登录原理 Cookie 的原理非常简...
    99+
    2022-06-04
    爬虫 方法 教程
  • python爬虫之利用selenium+opencv识别滑动验证并模拟登陆知乎功能
    滑动验证距离 分别获取验证码背景图和滑块图两张照片,然后利用opencv库,通过高斯模糊和Canny算法进行处理,然后通过matchTemplate方法进行两张图的匹配,获得滑动距离...
    99+
    2024-04-02
  • 一个简单的python爬虫,爬取知乎
    一个简单的python爬虫,爬取知乎主要实现 爬取一个收藏夹 里 所有问题答案下的 图片文字信息暂未收录,可自行实现,比图片更简单具体代码里有详细注释,请自行阅读项目源码:# -*- coding:utf-8 ...
    99+
    2023-06-02
  • 利用Python实现模拟登录知乎
    目录环境与开发工具模拟过程概述参数探索模拟源码运行结果结果一:密码错误结果二:验证码错误结果三:成功登录环境与开发工具 在抓包的时候,开始使用的是Chrome开发工具中的Networ...
    99+
    2024-04-02
  • Python爬虫利用cookie实现模拟登陆实例详解
    Cookie,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。 举个例子,某些网站是需要登录后才能得到你想要的信息的,不登陆只能是游客模式,那么我们可以利用U...
    99+
    2022-06-04
    爬虫 详解 实例
  • 如何利用Python实现模拟登录知乎
    环境与开发工具在抓包的时候,开始使用的是Chrome开发工具中的Network,结果没有抓到,后来使用Fiddler成功抓取数据。下面逐步来细化上述过程。模拟知乎登录前,先看看本次案例使用的环境及其工具:Windows 7 + Python...
    99+
    2023-05-18
    Python
  • java爬虫实战之模拟登陆的示例分析
    这篇文章主要介绍了java爬虫实战之模拟登陆的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web...
    99+
    2023-06-14
  • Python 模拟登陆
    import urllibimport urllib.requestimport gzipimport httpimport http.cookiejar#定义一个方法用于生成请求头信息,处理cookie  def getOpener(he...
    99+
    2023-01-31
    Python
  • Python爬虫模拟登录带验证码网站
    爬取网站时经常会遇到需要登录的问题,这是就需要用到模拟登录的相关方法。python提供了强大的url库,想做到这个并不难。这里以登录学校教务系统为例,做一个简单的例子。 首先得明白cookie的作用,coo...
    99+
    2022-06-04
    爬虫 验证码 网站
  • python爬虫入门教程--利用requests构建知乎API(三)
    前言 在爬虫系列文章 优雅的HTTP库requests 中介绍了 requests 的使用方式,这一次我们用 requests 构建一个知乎 API,功能包括:私信发送、文章点赞、用户关注等,因为任何涉及用...
    99+
    2022-06-04
    爬虫 入门教程 python
  • python模拟登陆Github示例
    首先进入github登录页:https://github.com/login 输入账号密码,打开开发者工具,在Network页勾选上Preserve Log(显示持续日志),点击登录,查看Session请求,找到其请求的URL与Form ...
    99+
    2023-01-31
    示例 python Github
  • 利用node.js写一个爬取知乎妹纸图的小爬虫
    前言 说起写node爬虫的原因,真是羞羞呀。一天,和往常一样,晚上吃过饭便刷起知乎来,首页便是推荐的你见过最漂亮的女生长什么样?,点进去各种漂亮的妹纸爆照啊!!!,看的我好想把这些好看的妹纸照片都存下来啊!...
    99+
    2022-06-04
    爬虫 node js
  • 如何用python爬取知乎话题?
    因为要做观点,观点的屋子类似于知乎的话题,所以得想办法把他给爬下来,搞了半天最终还是妥妥的搞定了,代码是python写的,不懂得麻烦自学哈!懂得直接看代码,绝对可用 #coding:utf-8 """ @author:haoning @cr...
    99+
    2023-01-31
    如何用 话题 python
  • python怎么模拟登陆网站
    这篇文章主要介绍了python怎么模拟登陆网站,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。使用已有cookie登陆使用浏览器登陆,获取浏览器中的cookie信息,来进行登陆...
    99+
    2023-06-14
  • python爬虫模拟登录之图片验证码实现详解
    我们在用爬虫对门户网站进行模拟登录是总会有输入图片验证码的,例如这种 那我们怎么解决这个问题实现全自动的模拟登录呢?只要思想不滑坡,办法总比困难多。我这里使用的是百度智能云里面的文...
    99+
    2024-04-02
  • bs4+mechanize模拟登陆
    Mechanize常用函数.CookieJar():设置cookie .Browser():打开浏览器 .addheaders():User-Agent,用来欺骗服务器的 .open():打开网页,按照官网描述...
    99+
    2023-01-30
    mechanize
  • python模拟登陆网站的示例
    目录使用已有cookie登陆登陆获取cookieform datarequest payload登陆后用session保持登陆状态调用浏览器登陆使用已有cookie登陆 使用浏览器...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作