web爬虫学习(三)——Cookies模拟登陆

笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值,找寻数据的秘密,笔者认为,数据的价值不仅仅只体现在企业中,个人也可以体会到数据的魅力,用技术力量探索行为密码,让大数据助跑每一个人,欢迎直筒们关注我的公众号,大家一起讨论数据中的那些有趣的事情。

我的公众号为:livandata

1、 用fiddler获取Cookies:

首先用自己的账号登录到网页版的手机微博上,

1) 获取登录数据包:

Cookie={“Cookie”:“XXXXXXXXX”}

Html = requests.get(url, cookies= cookie)

当用户输入用户名密码,并点击“保持登录”以后,这些数据会被发送给服务器,然后服务器验证数据,并成功登录。

需要提交的数据有哪些:

Data = {

‘Mobile’:(用户名),

Password:(密码),

‘Remember’:(是否保持登录),

‘backURL(登陆以后返回的地址),

backTitle’:(登录以后返回的标题),

‘tryCount’:(尝试次数),

‘vk’:(一个简单的验证码),

‘submit’:(登录),

‘action’:(URL参数)

}

主要是post方式提交(get方式提交时没有具体的data form,只需要用Cookies即可):

提交post数据时首先要建立一个data,然后将data放入到requests中:

确定要爬取的网页,在未登录的情况下微博会跳转到登录页面,即为下方的微博登录界面,确定登录的url:

输入“用户名\密码”之后,页面会跳转到需要爬取的页面,使用“开发者工具”的network确定form data数据:

会发现password后面跟有“_2125”,搜索源代码可以发现“_2125”的值,由此可以明确,password_2125等字段在源代码中可以确认。

而action中的参数为下图中的rand:

 

自此,可以确认相应的代码:

#!/usr/bin/env python
# _*_ UTF-8 _*_


import requests
from lxml import etree
from multiprocessing.dummy import Pool

url =
'http://weibo.cn/u/1890493665'
url_login = 'https://.weibo.cn/login/'

html = requests.get(url, cookies =cook).content.decode('gbk')
selector = etree.HTML(html)


print(html)

从源码中确认出password的关键字怎么用:
password = selector.xpath()[]
vk = selector.xpath()[]
action = selector.xpath()[]


print(action)
print(password)
print(vk)

new_url = url_login + action
data = {
   
'mobile':'xujingboyy@sina.com',
   
password:'xujingboyy123',
   
'remember':'on',
   
'backURL':'http://weibo.cn/u/1890493665',
   
'backTitle':u'微博',
   
'tryCount':'',
   
'vk':vk,
   
'submit':u'登录'
}

new_html = requests.post(new_url
, data=data).content
new_selector = etree.HTML(new_html)
content = new_selector.xpath()


for each in content:
    text = each.xpath(
'string(.)')
    b=
1
   
print(text)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值