perl 爬取数据

use  LWP::UserAgent;
use POSIX;
use DBI;  
$user="root";  
$passwd="11111111";  
$dbh="";  
$dbh = DBI->connect("dbi:mysql:database=zjzc_vote;host=11.55.5.57;port=3306",$user,$passwd) or die "can't connect to  database ". DBI-errstr;  
$dbh->do("SET NAMES utf8"); 
use utf8;
use HTML::TreeBuilder;
if (-f "data.html"){
open FILE,">data.html";
close FILE;}
open DATAFH,">>data.html" || die "open data file failed:$!"; 
my $ua = LWP::UserAgent->new;
$ua->timeout(10);
$ua->env_proxy;
$ua->agent("Mozilla/8.0");

my $response = $ua->get('https://licai.yingyinglicai.com/product/list.htm');


if ($response->is_success) {
 print DATAFH  $response->decoded_content;  # or whatever
# print   $response->decoded_content;  # or whatever
  use HTML::TreeBuilder::XPath;
  my $tree= HTML::TreeBuilder::XPath->new;
  $tree->parse_file( "data.html");
   my @nb=$tree->findvalues( '/html/body//div[@class="fresh"]');
  foreach (@nb){print "Product is $_
";
   chomp $_;
    my $XDATE = strftime("%Y%m%d%H%M%S",localtime());
    my $sql = "SELECT count(*)   FROM p2p_product  where productname='$_' and cname='yylc'"; 
    my $sth = $dbh->prepare($sql);    
    $sth->execute();  

  my  $count = $sth->fetchrow_array();
  if ($count == 0 ){
 my $host = "http://211.149.197.95:8888/sms.aspx?action=send&userid=74&account=SDK00026&password=960579&mobile=18957175628&content=$_&sendTime=&extno=";
my $response = $ua->get($host);
  $ua->default_headers;
if ($response->is_success) {
 print $response->decoded_content;  # or whatever
}
   $dbh->do("insert into p2p_product  values ('$_','$XDATE','yylc')") or $!;
                  }
  
};



              }
              else {
               die $response->status_line;
               };

原文地址:https://www.cnblogs.com/hzcya1995/p/13350997.html