数据库:book 表id

--
-- 数据库: `book`
--

-- --------------------------------------------------------

--
-- 表的结构 `id`
--

CREATE TABLE IF NOT EXISTS `id` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(126) NOT NULL,
`txt` varchar(126) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

文件

<?php
header("Content-type: text/html; charset=utf-8");
$con = mysql_connect("localhost","root","root");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("book", $con);

$title=array();
$book=array();
$key=0;
$url="http://www.biquge.la";
function gettitle($value)
{
$html=curl_get_contents($value);
preg_match_all("/\/book\/[0-9]{1,7}\//i",$html, $match1);

foreach ($match1[0] as $key1 => $value1) {
$ssa=array_search($value1, $GLOBALS["book"]);
if ($ssa===false) {
var_dump($value1);
$GLOBALS["book"][]=$value1;
$url_book=$GLOBALS["url"].$value1;
file_put_contents("book.txt", $GLOBALS["url"].$value1.PHP_EOL,FILE_APPEND);
$html_book=curl_get_contents($url_book);
$url_book_array=explode("/", $url_book);
$count_book_num=count($url_book_array);
$book_num=$url_book_array[$count_book_num-2];
$html_book=mb_convert_encoding($html_book, "UTF-8", "GBK");
//var_dump($html);
preg_match_all("/<dd>.*<\/dd>/i", $html_book, $match_book);
preg_match_all("/<title>.*<\/title>/i", $html_book, $match_book_title_array);
$match_book_title=preg_replace("/<title>/", "", $match_book_title_array[0][0]);
$match_book_title=preg_replace("/<\/title>/", "", $match_book_title);
$match_book_title_arrayone=explode("_", $match_book_title);
var_dump($match_book_title_arrayone[0]);
mysql_query("INSERT INTO `id` (
`id` ,
`name` ,
`txt`
)
VALUES (NULL , '".$match_book_title_arrayone[0]."', '".$book_num.".txt"."')");
foreach ($match_book[0] as $key_book_list => $value_book_list) {
$chapter_array=explode("\"", $value_book_list);
foreach ($chapter_array as $key_chapter => $value_chapter) {
if (preg_match("/[0-9]{1,9}\.html/", $value_chapter)) {
$html_chapter=curl_get_contents($url_book.$value_chapter);
$html_chapter=mb_convert_encoding($html_chapter, "UTF-8", "GBK");
//var_dump($html);
preg_match_all("/<div id=\"content\">.*<\/div>/i", $html_chapter, $match_chapter);
preg_match_all("/<title>.*<\/title>/i", $html_chapter, $match_title);
var_dump($match_title);
$value_content= $match_title[0][0].PHP_EOL.$match_chapter[0][0];

$value_content=str_replace("<br />", PHP_EOL, $value_content);

$value_content=str_replace("&nbsp;", " ", $value_content);

$value_content=preg_replace("/<script>.*<\/script>/", "", $value_content);

$value_content=preg_replace("/<title>/", "", $value_content);
$value_content=preg_replace("/<\/title>/", "", $value_content);
$value_content=preg_replace("/<.*>/", "", $value_content);
file_put_contents("book/".$book_num.".txt",$value_content.PHP_EOL,FILE_APPEND);
}
}
}
}
}
preg_match_all("/http:\/\/www.biquge.la\/[a-z]{8,20}\//i", $html, $match);
echo $GLOBALS["key"];
$GLOBALS["key"]++;
//var_dump($match);
while(list($key,$value) = each($match[0])){
$ss=array_search($value, $GLOBALS["title"]);
if ($ss===false) {
var_dump($value);
$GLOBALS["title"][]=$value;
file_put_contents("title.txt", $value.PHP_EOL,FILE_APPEND);
gettitle($value);
}
}
}
function curl_get_contents($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, 1000);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if (defined('CURLOPT_IPRESOLVE') && defined('CURL_IPRESOLVE_V4')) {
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
}
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
$r = curl_exec($ch);
curl_close($ch);
return $r;
}
gettitle($url);
mysql_close($con);
?>

一个php的爬虫,将笔趣阁的书可以都下载下来。的更多相关文章

  1. Jsoup-基于Java实现网络爬虫-爬取笔趣阁小说

    注意!仅供学习交流使用,请勿用在歪门邪道的地方!技术只是工具!关键在于用途! 今天接触了一款有意思的框架,作用是网络爬虫,他可以像操作JS一样对网页内容进行提取 初体验Jsoup <!-- Ma ...

  2. 免app下载笔趣阁小说

    第一次更新:发现一个问题,就是有时候网页排版有问题的话容易下载到多余章节,如下图所示: 网站抽风多了一个正文一栏,这样的话就会重复下载1603--1703章节. 解决办法: 于是在写入内容前加了一个章 ...

  3. scrapy框架爬取笔趣阁

    笔趣阁是很好爬的网站了,这里简单爬取了全部小说链接和每本的全部章节链接,还想爬取章节内容在biquge.py里在加一个爬取循环,在pipelines.py添加保存函数即可 1 创建一个scrapy项目 ...

  4. python入门学习之Python爬取最新笔趣阁小说

    Python爬取新笔趣阁小说,并保存到TXT文件中      我写的这篇文章,是利用Python爬取小说编写的程序,这是我学习Python爬虫当中自己独立写的第一个程序,中途也遇到了一些困难,但是最后 ...

  5. bs4爬取笔趣阁小说

    参考链接:https://www.cnblogs.com/wt714/p/11963497.html 模块:requests,bs4,queue,sys,time 步骤:给出URL--> 访问U ...

  6. python爬虫-《笔趣看》网小说《悟空看私聊》

    小编是个爱看小说的人,哈哈 # -*- coding:UTF-8 -*- ''' 类说明:下载<笔趣看>网小说<悟空看私聊> ''' from bs4 import Beaut ...

  7. python应用:爬虫框架Scrapy系统学习第四篇——scrapy爬取笔趣阁小说

    使用cmd创建一个scrapy项目: scrapy startproject project_name (project_name 必须以字母开头,只能包含字母.数字以及下划线<undersco ...

  8. python3 爬虫继续爬笔趣阁 ,,,,,,,

    学如逆水行舟,不进则退 今天想看小说..找了半天,没有资源.. 只能自己爬了 想了半天.,,,忘记了这个古老的技能 捡了一下 import requests from bs4 import Beaut ...

  9. Python爬取笔趣阁小说,有趣又实用

    上班想摸鱼?为了摸鱼方便,今天自己写了个爬取笔阁小说的程序.好吧,其实就是找个目的学习python,分享一下. 1. 首先导入相关的模块 import os import requests from ...

随机推荐

  1. EBay .Net SDK Api 实践

        1.请求流程介绍   提供SOA地址:https://api.ebay.com/wsapi   WSDL生成的代码在WebService.cs文件当中.   ApiCall封装了所有的RPC, ...

  2. oracle去重

    oracle去重 create table tmp_table3 as (SELECT seqno FROM (SELECT t.seqno,ROWID, ROW_NUMBER() OVER(PART ...

  3. C#生成PDF总结

    (一)C#生成PDF总结 (1)iTextSharp控件对iTextSharp研究还可以表格.文字.各种GDI对象,图片,水印,文字旋转(2)aspose的控件(3)PDF Library这个类库(只 ...

  4. Codeforces Round #352 (Div. 2) A Summer Camp

    Every year, hundreds of people come to summer camps, they learn new algorithms and solve hard proble ...

  5. background常用属性

    background-image:url('图片位置');//设置背景图片的位置 background-repeat:no-repeat;//图片是否重复显示(不重复) background-posi ...

  6. 【BZOJ】2194: 快速傅立叶之二

    http://www.lydsy.com/JudgeOnline/problem.php?id=2194 题意:求$c[k]=\sum_{k<=i<n} a[i]b[i-k], n< ...

  7. Codeforces Beta Round #5

    A题,无聊的题目. #include <cstdio> #include <string> #include <cstring> #include <cmat ...

  8. SQL 中怎么查询一个数据库中一共有多少个表

    用户表:select count(*) 总表数 from sysobjects where xtype='u' 总表数:select count(*) 总表数 from sysobject s whe ...

  9. Windows Phone 8 Sync

    A lot of the below depends on the types of data, how often it is changing, and how often it is likel ...

  10. [LintCode] Mini Twitter 迷你推特

    Implement a simple twitter. Support the following method: postTweet(user_id, tweet_text). Post a twe ...