snoopy采集(自己写的)

<?php
set_time_limit(0);
header("content-type:text/html;charset=utf8");
mysql_connect("127.0.0.1","root",'root');
mysql_select_db("seven_month");
mysql_query("set names utf8");
include 'Snoopy.class.php';
$snoopy=new Snoopy;
$url="http://www.duwenzhang.com/";
$snoopy->fetch($url);
$content=$snoopy->results;
$contents = iconv("gb2312","utf-8//IGNORE",$content);

$preg='#<td class="blue sprite-bluec"> <a href="(.*)">(.*)</a></td>#isU';
preg_match_all($preg,$contents,$type);
$type=$type[2];
$preg1='#<TR>(.*)<TD width="417" class="inddline">(.*)<a href="(.*)">(.*)</a></TD>(.*)<TD width="76" align="right" class="inddline">(.*)</TD>(.*)</TR>#isU';
preg_match_all($preg1,$contents,$arr);
$links=$arr[3];
foreach($links as $key=>$val){
    $article=file_get_contents($val);
    $article=iconv("gb2312","utf-8//IGNORE",$article);
    $preg_text='#<div id="wenzhangziti" class="(.*)">(.*)</div>#isU';
    preg_match_all($preg_text,$article,$text);
    $newtext[]=$text[2][0];
}
$newtext=array_chunk($newtext,5);
$time=array_chunk($arr[6],5);
$title=$arr[4];
$title=array_chunk($title,5);
$new=array();
for($i=0;$i<count($title);$i++) {
    $new[$i]['title']=$title[$i];
    $new[$i]['add_time'] = $time[$i];
    $new[$i]['text']=$newtext[$i];
}
foreach($type as $key=>$val){
    $sql="insert into type (type_name) values ('".$val."')";
    mysql_query($sql);
    $id=mysql_insert_id();
    foreach($new as $key=>$val){
        $sql="insert into title_type(title,add_time,text,type_id) VALUES ";
        for($i=0;$i<count($val['title']);$i++){
            $sql.="('".$val['title'][$i]."','".$val['add_time'][$i]."','".$val['text'][$i]."',$id)".',';
            mysql_query($sql);
            $sql1=substr($sql,0,-1);
            $re=mysql_query($sql1);
        }
    }
}
if(isset($re) && $re=true){
    echo "恭喜你采集成功";
}else{
    echo "很抱歉,采集失败,请重新采集";
}



$pdo=new PDO("mysql:host=localhost;dbname=seven_month","root","root");
 $pdo->exec("set names utf-8");

 $data=$pdo->query("select * from type")->FETCHALL(PDO::FETCH_ASSOC);
 print_r($data);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个使用glib编的面向对象风格的代码示例,其中体现了封装、继承、多态: ```c #include <glib.h> // 基类 Animal typedef struct _Animal { gchar *name; guint age; } Animal; // Animal 方法 void animal_set_name(Animal *animal, gchar *name) { g_free(animal->name); animal->name = g_strdup(name); } void animal_set_age(Animal *animal, guint age) { animal->age = age; } void animal_say_hello(Animal *animal) { g_print("Hello, I'm %s.\n", animal->name); } // 派生类 Dog typedef struct _Dog { Animal parent; gchar *breed; } Dog; // Dog 方法 void dog_set_breed(Dog *dog, gchar *breed) { g_free(dog->breed); dog->breed = g_strdup(breed); } void dog_say_hello(Dog *dog) { g_print("Hello, I'm a %s dog named %s.\n", dog->breed, dog->parent.name); } // Animal 构造函数 Animal *animal_new(gchar *name, guint age) { Animal *animal = g_new(Animal, 1); animal->name = g_strdup(name); animal->age = age; return animal; } // Dog 构造函数 Dog *dog_new(gchar *name, guint age, gchar *breed) { Dog *dog = g_new(Dog, 1); dog->parent.name = g_strdup(name); dog->parent.age = age; dog->breed = g_strdup(breed); return dog; } int main() { Animal *animal = animal_new("Tom", 3); animal_say_hello(animal); Dog *dog = dog_new("Snoopy", 5, "Beagle"); animal_say_hello((Animal *) dog); dog_say_hello(dog); g_free(animal->name); g_free(animal); g_free(dog->parent.name); g_free(dog->breed); g_free(dog); return 0; } ``` 在上面的代码中,Animal 是基类,Dog 是派生类。Animal 包含了 name 和 age 两个成员变量,以及 animal_set_name、animal_set_age 和 animal_say_hello 三个方法。Dog 继承了 Animal,并新增了 breed 成员变量,以及 dog_set_breed 和 dog_say_hello 两个方法。animal_new 和 dog_new 分别是 Animal 和 Dog 的构造函数,用于初始化对象。在 main 函数中,分别创建了一个 Animal 和一个 Dog 对象,并调用了相应的方法。 这个代码示例中体现了封装,Animal 和 Dog 的成员变量和方法都是私有的,外界无法直接访问。同时也体现了继承,Dog 继承了 Animal 的属性和方法。最后,dog_say_hello 方法通过多态的方式覆盖了 animal_say_hello 方法,体现了多态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值