perl 登录某网站
<pre name="code" class="html">use Net::SMTP;
use LWP::UserAgent;
use HTTP::Cookies;
use HTTP::Headers;
use HTTP::Response;
use Encode;
use File::Temp qw/tempfile/;
use HTTP::Date qw(time2iso str2time time2iso time2isoz);
my $ua = LWP::UserAgent->new;
$ua->timeout(5);
my $cookie_jar = HTTP::Cookies->new(
file=>'ty_lwp_cookies.txt',
autosave=>1,
ignore_discard=>1
);
$ua->cookie_jar($cookie_jar);
my $response = $ua->get('https://account.tingyun.com/cas/login?service=https%3A%2F%2Fsaas.tingyun.com%2Fj_acegi_cas_security_check%3FloginView%3DcasLoginTingyun');
open DATAFH,">data.html" || die "open data file failed:$!";
if ($response->is_success) {
#print DATAFH $response->decoded_content; # or whatever
print DATAFH $response->content; # or whatever
}
close DATAFH; use HTML::TreeBuilder::XPath;
$tree= HTML::TreeBuilder::XPath->new;
$tree->parse_file("data.html");
my @pages=$tree->find_by_tag_name('input');
#@urlall除了包含每个类别的文章,还包含阅读排行里的文章
foreach (@pages) {
@titlepage = $_->attr('value');
foreach (@titlepage) {
chomp $_;
if ($_){
print "\$_ is $_\n";
$it_tag=$_;
};
};
##退出当前循环:
last;
};
print "\$it_tag is $it_tag\n";
sleep(2);
my $login_url = 'https://account.tingyun.com/cas/login?service=https%3A%2F%2Fsaas.tingyun.com%2Fj_acegi_cas_security_check%3FloginView%3DcasLoginTingyun&lang=zh_CN';
#my $login_url = 'https://account.tingyun.com/cas/login?service=https://saas.tingyun.com/j_acegi_cas_security_check?loginView=casLoginTingyun&lang=zh_CN';
my $res = $ua->post($login_url,{
_eventId=>'submit',
lt=>"$it_tag",
password=>'76ede6846c35b6e1aec36ad4cf65a9e1',
username=>'server@quvideo.com'
},
'User-Agent'=>'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0',
'Host'=>'account.tingyun.com',
'Referer'=>"https://account.tingyun.com/cas/login?service=https%3A%2F%2Fsaas.tingyun.com%2Fj_acegi_cas_security_check%3FloginView%3DcasLoginTingyun",
'Upgrade-Insecure-Requests'=>1
);
print $res->status_line . "\n";
print $res->as_string();#获取的是原始内容,包括响应头,响应正文 my $url='https://saas.tingyun.com/j_acegi_cas_security_check?loginView=casLoginTingyun';
my $response = $ua->get($url);
print "--------------------\n";
# 判断响应头里面的location,确定是否登陆成功
print $res->header('Location');
print "\n"; jrhmpt01:/root# perl ty.pl
$_ is _cFD65326B-19A2-35BE-8DAC-BEC685FC65F1_kFFC533A8-238E-8CF2-9D73-8FF512527691
$it_tag is _cFD65326B-19A2-35BE-8DAC-BEC685FC65F1_kFFC533A8-238E-8CF2-9D73-8FF512527691
302 Found
HTTP/1.1 302 Found
Cache-Control: no-cache
Cache-Control: no-store
Connection: close
Date: Thu, 22 Sep 2016 07:29:04 GMT
Pragma: No-cache
Location: https://saas.tingyun.com/j_acegi_cas_security_check?loginView=casLoginTingyun&ticket=ST-114612-1D4vn5gJHAgcD4jCDiLEXpeXrUbSDydQagr-account.tingyun.com
Server: Tengine
Content-Language: zh-CN
Content-Length: 0
Content-Type: text/html;charset=UTF-8
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Access-Control-Allow-Headers: accept, content-type, classname
Access-Control-Allow-Origin: *
Client-Date: Thu, 22 Sep 2016 07:29:04 GMT
Client-Peer: 123.103.75.4:443
Client-Response-Num: 1
Client-SSL-Cert-Issuer: /C=US/O=GeoTrust Inc./CN=GeoTrust SSL CA - G3
Client-SSL-Cert-Subject: /C=CN/ST=beijing/L=beijing/O=\xE5\x8C\x97\xE4\xBA\xAC\xE5\x9F\xBA\xE8\xB0\x83\xE7\xBD\x91\xE7\xBB\x9C\xE8\x82\xA1\xE4\xBB\xBD\xE6\x9C\x89\xE9\x99\x90\xE5\x85\xAC\xE5\x8F\xB8/OU=IT dept./CN=*.tingyun.com
Client-SSL-Cipher: ECDHE-RSA-AES256-SHA
Client-SSL-Warning: Peer certificate not verified
Set-Cookie: org.springframework.web.servlet.i18n.CookieLocaleResolver.LOCALE=zh_CN; Expires=Tue, 10-Oct-2084 10:43:11 GMT; Path=/
Set-Cookie: CASPRIVACY=""; Domain=tingyun.com; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/cas
Set-Cookie: CASTGC=TGT-57918-uCE2mcdi4YDaiVTEUHpLY2ZbRQj0vGPmGEF-account.tingyun.com; Domain=tingyun.com; Path=/cas --------------------
https://saas.tingyun.com/j_acegi_cas_security_check?loginView=casLoginTingyun&ticket=ST-114612-1D4vn5gJHAgcD4jCDiLEXpeXrUbSDydQagr-account.tingyun.com
<img src="http://img.blog.csdn.net/20160922154030372?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
<img src="http://img.blog.csdn.net/20160922154040301?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
<img src="http://img.blog.csdn.net/20160922154053403?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
perl 登录某网站的更多相关文章
- 使用Python登录Github网站
在下面的代码中, 展示了使用Python脚本登录Github的方法. 如果需要登录别的网站,那么请使用Chrome的Inspect的功能寻找到目标的object,对代码进行替换. 代码先登录了gith ...
- C# 从需要登录的网站上抓取数据
[转] C# 从需要登录的网站上抓取数据 背景:昨天一个学金融的同学让我帮她从一个网站上抓取数据,然后导出到excel,粗略看了下有1000+条记录,人工统计的话确实不可能.虽说不会,但作为一个学计算 ...
- python爬虫笔记之用cookie访问需要登录的网站
目标:用cookie访问一个需要登录的网站 如图,直接访问会跳转到登录页面,提示登录. 运行结果: 直接在浏览器上输入该url,网站立马跳转到登录页面. 方法: 1.先手动登录,通过抓包获取coo ...
- Java 爬虫遇到需要登录的网站,该怎么办?
这是 Java 网络爬虫系列博文的第二篇,在上一篇 Java 网络爬虫,就是这么的简单 中,我们简单的学习了一下如何利用 Java 进行网络爬虫.在这一篇中我们将简单的聊一聊在网络爬虫时,遇到需要登录 ...
- 看完48秒动画,让你不敢再登录HTTP网站(附完整示例代码)
在我的 单点登录SSO示例代码 一文中,强烈不建议部署HTTP的SSO服务站点. 在此写个基于网络包嗅探的HTTP会话劫持程序,给大家一个直观的危害性展示. 示例中,我在一台Mac上登录58同城,被另 ...
- 钉钉扫码登录web网站
钉钉扫码登录网站 前言 由于本公司前后台分离,这里主要讲述后台的实现逻辑与过程,前端相关的一略而过.前端我们采用的是把二维码内嵌到我们的网页中. 流程如下: 1.登录钉钉后台创建一个企业应用 2.根 ...
- python爬虫19 | 遇到需要的登录的网站怎么办?用这3招轻松搞定!
你好 由于你是游客 无法查看本文 请你登录再进 谢谢合作 当你在爬某些网站的时候 需要你登录才可以获取数据 咋整? 莫慌 小帅b把这几招传授给你 让你以后从容应对 那么 接下来就是 学习 python ...
- wget断点续传下载需要登录的网站上的大文件
1 举个例子 xcode 2 方法 wget --load-cookies=cookies.txt -c url -c是断点续传,如果网络断了,再运行该命令会接着最新的下载继续下载. --load- ...
- pyppeteer 登录一般网站 并利用 http方法获取登录页面的验证码
主函数 新建浏览器,进行登录,由于验证码的识别准确率不是百分之百,需要多次尝试. async def main(self, username, pwd, url): # 定义main协程函数, log ...
随机推荐
- Android软件的国际化
软件的国际化指的就是:在不同语言的环境的操作系统下,显示不同的语言 2 其实实现软件的国际化很简单: 3 4 1.如果是对文字的国际化,只需要在res文件夹下面建立如下文件夹: 5 values-zh ...
- <有序数组>转化为<按二分法遍历顺序排列的数组>(C++实现)
在进行参数试错时,通常将可能的参数由小到大排列一个个进行测试,这样的测试顺序很多时候不太合理,因此写了一个按二分法遍历顺序排列的算法,通常能更快的找到合适的参数.代码如下: /************ ...
- js判断上传文件大小
下面提供三款网页特效判断上传文件大小哦,这三种方法是现在限制文件上传大小比较好的方法,可以在客户上传文件时限制上传文件大小判断处理<!doctype html public "-//w ...
- 【性能优化】优化笔记之一:图像RGB与YUV转换优化
本文主要介绍如何优化您自己的CODE,实现软件的加速.我们一个图象模式识别的项目,需要将RGB格式的彩色图像先转换成黑白图像.图像转换的公式如下: Y = 0.299 * R + 0.587 * G ...
- Creating Apps With Material Design —— Defining Shadows and Clipping Views
View转载请注明 http://blog.csdn.net/eclipsexys 翻译自Developer Android,时间仓促,有翻译问题请留言指出,谢谢 定义阴影和裁减 材料设计引入了深度的 ...
- SPOJ 416 - Divisibility by 15(贪心)
糟烂的代码啊... 这个题目思路很简单——末位只可能为0和5,所有数字的和肯定被3整除 没有0和5的肯定不行 否则,把所有数字求和 如果被3整除,则从大到小输出 如果除3余1,则按以下顺序——删1: ...
- Linux系统中C&Cpp程序开发(一)
之前一直在Windows系统下进行程序的设计,近期开始学习使用Linux系统,因而打算将程序开发也转移到Linux系统下.今天先简单介绍一下该系统下的C程序开发步骤. 首先要预先安装vim和gcc工具 ...
- oracle服务开机自启动
1.修改oracle系统配置文件::/etc/oratab vi /etc/oratab orcl:/opt/oracle/product/10.2.0/db_1:Y 2.在 /etc/init.d/ ...
- Codeforces Round #276 (Div. 1)
a. 给俩数, 求他俩之间二进制数中1最多的,有多个输出最小的: 贪心,从小到大加能加就加,最后可能碰到一个不能加了但是当前数比l小,那么就加上这个数,然后从大到小,能减就减,见到符合条件 #incl ...
- eclipse安装ADT插件重启后不显示Android SDK Manager和Android Virtual Device Manager图标的一种解决办法
通常安装,搭建安卓环境后,不显示Android SDK Manager和Android Virtual Device Manager ize解决方法:Eclipse ->window->c ...