<pre name="code" class="python">use  LWP::UserAgent;
use utf8;
use DBI;
use POSIX;
use Data::Dumper;
use HTML::TreeBuilder;
use HTML::TreeBuilder::XPath;
my $ua = LWP::UserAgent->new;
$ua->timeout(10);
$ua->env_proxy;
$ua->agent("Mozilla/8.0");
#my $response = $ua->get('http://data.10jqka.com.cn/financial/yjyg/date/2016-12-31/board/ALL/field/enddate/order/desc/page/1/ajax/1/');
#my $response = $ua->get('http://data.10jqka.com.cn/financial/yjyg/');
my @array=('2016-12-31','2016-03-31','2015-12-31','2015-09-30','2015-06-30','2015-03-31','2014-12-31','2014-09-30','2014-03-31'); foreach (@array){
print "\$_ is $_\n";
my $url="http://data.10jqka.com.cn/financial/yjyg/date/$_/board/ALL/field/enddate/order/desc/page/1/ajax/1/";
print "\$url is $url\n";
my $response = $ua->get($url);
if ($response->is_success) {
open DATAFH,">data.html" || die "open data file failed:$!";
print DATAFH "<html>";
print DATAFH "\n";
print DATAFH $response->decoded_content; # or whatever
print DATAFH "</html>";
print DATAFH "\n";
};
close DATAFH;
unlink("ths.html");
system('cp data.html ths.html');
$tree= HTML::TreeBuilder::XPath->new;
$tree->parse_file( "ths.html"); my $title="$_";
#my $title= $tree->findvalue('/html/body//span[@class="text-value"]');
print "\$title is $title\n";
my @pages="";
my @titlepage="";
$max="";
my @pages=$tree->find_by_tag_name('a');
print "\@pages is @pages\n";
#@urlall除了包含每个类别的文章,还包含阅读排行里的文章
foreach (@pages) {
@titlepage = $_->attr('page');
foreach (@titlepage) {
if ($_){
if ( $_ > $max ){
$max=$_;
}; ###获取版块中每个页面的url
};
};
};
unless ($max){$max=1};
print "\$max is $max\n";
sleep (5); for ($m=1;$m<=$max; $m++){ my $url="http://data.10jqka.com.cn/financial/yjyg/date/$_/board/ALL/field/enddate/order/desc/page/$m/ajax/1/";
my $response = $ua->get("$url");
if ($response->is_success) {
open DATAFH,">data.html" || die "open data file failed:$!";
print DATAFH "<html>";
print DATAFH "\n";
print DATAFH $response->decoded_content; # or whatever
print DATAFH "</html>";
print DATAFH "\n";
close DATATH;
};
unlink("ths.html");
system('cp data.html ths.html');
$tree= HTML::TreeBuilder::XPath->new;
$tree->parse_file( "ths.html"); my @arr1= $tree->find_by_tag_name("tr") ;
#shift @arr1;
foreach my $row ( @arr1) {
my @arr2= $row->content_list; my $str1= $arr2[0]->as_text;
my $str2= $arr2[1]->as_text;
my $str3= $arr2[2]->as_text;
my $str4= $arr2[3]->as_text;
my $str5= $arr2[4]->as_text;
my $str6= $arr2[5]->as_text;
my $str7= $arr2[6]->as_text;
my $str8= $arr2[7]->as_text;
print $str1, $str2, $str3, $str4, $str5, $str6, $str7,$str8."\n";
open( E, ">>", "$title-$m.txt" );
print E ($str1."|".$str2."|".$str3."|".$str4."|".$str5."|".$str6."|".$str7."|".$str8."\n");
close E; }
}
}
												

perl 爬取上市公司业绩预告的更多相关文章

  1. Perl爬取江西失信执行

    #! /usr/bin/perl use strict; use Encode qw(encode decode); binmode(STDIN,":encoding(utf8)" ...

  2. Perl爬取铁路违章旅客信息

    #! /usr/bin/perl use strict; use Encode qw(encode decode); binmode(STDIN,":encoding(utf8)" ...

  3. perl 爬取某理财网站产品信息

    use LWP::UserAgent; use utf8; use DBI; $user="root"; $passwd="xxxxx"; $dbh=" ...

  4. perl 爬取数据<1>

    use LWP::UserAgent; use POSIX; use DBI; $user="root"; $passwd="11111111"; $dbh=& ...

  5. perl 爬取csdn

    <pre name="code" class="python">use LWP::UserAgent; use POSIX; use HTML::T ...

  6. perl 爬取同花顺数据

    use LWP::UserAgent; use utf8; use DBI; $user="root"; $passwd='xxx'; $dbh=""; $db ...

  7. Python爬取CSDN博客文章

    0 url :http://blog.csdn.net/youyou1543724847/article/details/52818339Redis一点基础的东西目录 1.基础底层数据结构 2.win ...

  8. 用WebCollector制作一个爬取《知乎》并进行问题精准抽取的爬虫(JAVA)

    简单介绍: WebCollector是一个无须配置.便于二次开发的JAVA爬虫框架(内核),它提供精简的的API.仅仅需少量代码就可以实现一个功能强大的爬虫. 怎样将WebCollector导入项目请 ...

  9. Java爬虫_资源网站爬取实战

    对 http://bestcbooks.com/  这个网站的书籍进行爬取 (爬取资源分享在结尾) 下面是通过一个URL获得其对应网页源码的方法 传入一个 url  返回其源码 (获得源码后,对源码进 ...

随机推荐

  1. Ubuntu下使用Vi时方向键变乱码 退格键不能使用的解决方法

    要在Ubuntu下编辑一些文件,这就涉及到了vi这个编辑器了.在Ubuntu下,初始使用vi的时候有点问题,就是在编辑模式下使用方向键的时候,并不会使光标移动,而是在命令行中出现[A [B [C [D ...

  2. redis memcache

    谈谈Memcached与Redis(一) 1. Memcached简介 Memcached是以LiveJurnal旗下Danga Interactive公司的Bard Fitzpatric为首开发的高 ...

  3. Cookies与保持登录(新浪微博的简单模拟登录)

    Cookies与保持登录(新浪微博的简单登录) .note-content {font-family: "Helvetica Neue",Arial,"Hiragino ...

  4. HTML5 canvas易错点

    一.画布的默认宽高 <canvas id="myCanvas" style="border:1px solid black;"> 你的浏览器不支持h ...

  5. css中em与px

    Px是绝对定位   em是相对定位 1. em的值并不是固定的: 2. em会继承父级元素的字体大小. em应用: 1. body选择器中声明Font-size=62.5%:(注:在ie中把body选 ...

  6. php笔试算法题:顺时针打印矩阵坐标-蛇形算法

    这几天参加面试,本来笔试比较简单,但是在面试的时候,技术面试官说让我现场写一个算法,顺时针打印矩阵的坐标,如图所示 顺序为,0,1,2,3,4,9,14,19,24,23,22,21,20,15,10 ...

  7. 点语法、property、self注意

    1.点语法(找出不合理的地方)#import <Foundation/Foundation.h>@interface Person : NSObject{    int _age;}- ( ...

  8. 给进程分配cpu核心

    新负责的程序采用生产者和消费者的模式,生产者的速度非常快,数据几乎都在内存里,处理起来很快.而消费者要频繁的I/O.所以打算给生产者和消费者分配不一样的核心. 生产者只需要一个核心就够了,其余分配给消 ...

  9. perl 解json数组

    <pre name="code" class="cpp">http://11.36.10.82:4000/api/bus?bus=307&f ...

  10. java文件读写操作

    Java IO系统里读写文件使用Reader和Writer两个抽象类,Reader中read()和close()方法都是抽象方法.Writer中 write(),flush()和close()方法为抽 ...