模拟登录CSDN

1.采用python模拟登录CSDN的时候分为三步走:

1.获取url=https://passport.csdn.net/account/login;

2.分析登录信息:从网页中得到username,password和hideen标签隐藏的属性,在CSDN中有三个隐藏标签,lt,execution,_eventId  //注意这三个标签是动态的比能够写死

3.POST数据分析:

1.构造属于hearder,同时大部分网站登录需要cookie,必须设置cookie处理器暴走cookie,使用Session模块会自动将cookies保存,会自动将数据保存,Session能够自动保持其中会话过程(学习Java中网络编程),在登录CSDN过程中有Js编写出来的jsessionid动态的网页密码,在访问过程中要将其加入到URL+‘;’+‘jsessionid‘形式。

但是此爬虫过程中没有图片或者验证码之类的东西,还需要深入研究。。。。下节再看



 1 #----coding-GBK----
 2
 3 import requests
 4 from lxml import html
 5 import re
 6
 7 Username="XXXXXX"
 8 PassWord="XXXXXXX"
 9
10 url="https://passport.csdn.net/account/login"
11 def craw_csdn():
12     s=requests.Session()
13     datas={‘username‘:Username,‘password‘:PassWord}
14     head={‘Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)‘}
15
16     b=s.post(url,data=datas)
17     ##print (b.text)
18     tree=html.fromstring(b.text)
19     lt=list(set(tree.xpath("//input[@name=‘lt‘]/@value")))[0]
20
21     execution=list(set(tree.xpath("//input[@name=‘execution‘]/@value")))[0]
22
23     eventid=list(set(tree.xpath("//input[@name=‘_eventId‘]/@value")))[0]
24     jsessionid=list(set(tree.xpath("//link/@href")))[0]
25     jsessionid=str(re.findall(‘jsessionid=(.*)‘,jsessionid)[0])
26
27     post_url=url+‘;‘+‘jsessionid=‘+jsessionid
28     print (post_url)
29     payload={
30              ‘username‘:Username,
31              ‘password‘:PassWord,
32              ‘lt‘:lt,
33              ‘execution‘:execution,
34              ‘_eventId‘:eventid
35              }
36
37     agent=‘Mozilla/5.0 (Windows NT 6.1; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0‘
38     head={
39       ‘Accept‘:"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
40       ‘User-Agent‘:agent,
41       ‘Host‘:‘passport.csdn.net‘,
42       ‘Referer‘:‘https://passport.csdn.net/account/login?from=http://my.csdn.net/my/mycsdn‘,
43
44       }
45     r=s.post(post_url,data=payload,headers=head)
46     print(r.text)  if __name__=="__main__":
47     craw_csdn()

结果显示出来登录的是CSDN中HTML还要web流程中深入挖掘其他的东西:


4.网易云课堂上第二课爬取到的第二关的代码:

 1 #--coding:utf-8-----
 2 #!/usr/bin/env python
 3 import requests
 4 from lxml import html
 5 from _cffi_backend import string
 6
 7 url=‘http://www.heibanke.com/accounts/login‘
 8 logurl=‘http://www.heibanke.com/lesson/crawler_ex02/‘
 9
10 ##采用尝试方式发送数据得到其中cirf值
11 def post_data_url(s,url,data):
12     b=s.get(url)
13
14     tree=html.fromstring(b.text)
15     auth_token=list(set(tree.xpath("//input[@name=‘csrfmiddlewaretoken‘]/@value")))[0]
16     print auth_token
17
18     ##使用这句话将cookies保存下来
19     params={‘csrfmiddlewaretoken‘:b.cookies.get(‘csrftoken‘)}
20     params.update(data)##将csrf加入到payload中
21
22     r=s.post(url,data=params)##post向服务器发送的请求
23     return r,s
24
25 s=requests.Session()
26 payload={
27          ‘username‘:‘test‘,
28          ‘password‘:‘test123‘
29          }
30 r,s=post_data_url(s,url,payload)
31
32 print r.status_code
33
34 for i in range(30):
35     rr,s=post_data_url(s,logurl,{‘username‘:‘heibanke‘,‘password‘:str(i)})
36     if rr.text.find(u‘错误‘)>0:
37         print i,"no correct"
38         i+=1
39     else:
40         print rr.text
41         break
42
43     

5.模拟登录CSDN的时候,采用requests_Session()模块,采用httpfix抓取:

从其中得到的信息中:post数据包,同时发现post 的url中有一段就jessionId的动态码,在python书写过程中必须要将其加入到url中同时得到post数据包提交的方法:

post -Data:

红色箭头表示post的url,发现自动加上jessionid的东西

时间: 2024-07-28 14:53:26

模拟登录CSDN的相关文章

基于python的request库,模拟登录csdn博客

以前爬虫用urllib2来实现,也用过scrapy的爬虫框架,这次试试requests,刚开始用,用起来确实比urllib2好,封装的更好一些,使用起来简单方便很多. 安装requests库     最简便的方法就是使用pip来安装:pip install requests:如果需要安装特定版本,则在后面加上版本号即可:pip install requests == 1.9.7,这样就搞定了. 快速上手的小例子 下面说一个最简单的例子: 第一行,引入requests库,这是必然的. 第二行,通过

.NET微信模拟登录及{base_resp:{ret:-4,err_msg:nvalid referrer}}的解决办法

12年的时候写了些关于微信开发的内容,当时看好这个东西,可惜当时腾讯开放的权限太少,之后的一年多时间没有太关注了. 现在又要重新开始微信开发的阵容了,微信只是个入口,微网站才是趋势. 我是个水货,所以写的都是比较入门的,给初学者点启发用的. 这里有3个文件,一个页面展示(不贴代码了,就两个文本框和提交按钮)和后台代码,一个方法类,一个实体类 后台代码 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 protected void btnConfirm_Click(

模拟登陆CSDN——就是这么简单

工具介绍 本篇文章主要是讲解如何模拟登陆CSDN,使用的工具是HttpClient+Jsoup 其中HttpClient主要是负责发送请求,而Jsoup主要是解析HTML 你可能对HttpClient的API不太了解,不过没关系,往下看就好了~ Jsoup的语法类似jQuery的选择器,相信有一定web基础的人都可以很快的掌握 其中select(String selector)就是最强大的选择器,另外还提供一系列的细化的方法,比如: getElementById(String id), getE

Android(Java) 模拟登录知乎并抓取用户信息

前不久.看到一篇文章我用爬虫一天时间"偷了"知乎一百万用户.仅仅为证明PHP是世界上最好的语言,该文章中使用的登录方式是直接复制cookie到代码中,这里呢,我不以爬信息为目的.仅仅是简单的介绍使用java来进行模拟登录的基本过程.之前写过的文章android 项目实战--打造超级课程表一键提取课表功能事实上就是模拟登录的范畴.再加上近期在知乎上看到非常多人问关于超级课程表的实现,事实上本质就是模拟登录,掌握了这篇文章的内容,你不再操心抓不到信息了.然后,这篇文章会使用到之前的一篇Co

【python网络编程】使用rsa加密算法模块模拟登录新浪微博

一.基础知识 http://blog.csdn.net/pi9nc/article/details/9734437 二.模拟登录 因为上学期参加了一个大数据比赛,需要抓取数据,所以就想着写个爬虫抓取新浪微博的数据. 当然抓取数据不是漫无目的的,我需要的是根据关键词来抓取相关微博. 正好微博有一个高级搜索功能,不过要获取更多的微博,需要登录,所以这时就需要模拟登录了. 以下代码是通过rsa加密算法模块来模拟的.需要注意的是,新浪有反爬虫的,所以我们登录的时候要伪装成浏览器. 代码不是自己写的,所以

httpclient 模拟登录 及线程安全

//登录csdn//        String uri = "https://passport.csdn.net/account/login";//        String html = HttpUtil.DownHtml(uri);        //        <input type="hidden" name="lt" value="LT-207426-moK0sGnfCa9aqijJKeLYhFDYiEe2id&

关于python模拟登录的一点实践

不久前,通过网上查阅各种资料,一直想利用python来实现模拟登录的功能,通过csdn汪海的博客学会了一点,但也只能算个皮毛,亦或皮毛都算不上. 边查阅资料边写一个小东西,起初想写一个程序,通过暴力破解+模拟登录的方式来实现破解学校一卡通的密码,孰料,强力破解面对六位数的密码的1000000种尝试,很难短时间破解,另一原因在于暴力尝试的时候服务器端总是出问题,代号为500,遂搁浅. 现在只实现了有密码的登录一个人的帐号,读出首页信息,具体的消费记录涉及到翻页的问题,每次翻页都会提交一串好长的串,

urllib库利用cookie实现模拟登录慕课网

思路 1.首先在网页中使用账户和密码名登录慕课网 2.其次再分析请求头,如下图所示,获取到请求URL,并提取出cookie信息,保存到本地 3.最后在代码中构造请求头,使用urllib.request发送包含cookie信息的请求 源码 # !/usr/bin/env python # -*- coding:utf-8 -*- """ 使用Cokie模拟登录 """ import urllib.request url="http://w

python--spider模拟登录

很多情况下,页面的某些信息需要登录才可以查看. 这里的核心是获取登陆之后的 Cookies .话不多说,操练起来. 1. 模拟登录并爬取GitHub 1.1 环境准备 requests库 lxml库 1.2 分析登录过程 打开Github的登录页面,https://github.com/login.输入用户名和密码,打开开发者工具,勾选preserve log,这表示显示持续日志. 点击登录按钮,可以看到各个请求过程. 点击第一个请求,进入详细界面:  Headers 里面包含了: From D