一个php的爬虫,将笔趣阁的书可以都下载下来。
数据库: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(" ", " ", $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的爬虫,将笔趣阁的书可以都下载下来。的更多相关文章
- Jsoup-基于Java实现网络爬虫-爬取笔趣阁小说
		注意!仅供学习交流使用,请勿用在歪门邪道的地方!技术只是工具!关键在于用途! 今天接触了一款有意思的框架,作用是网络爬虫,他可以像操作JS一样对网页内容进行提取 初体验Jsoup <!-- Ma ... 
- 免app下载笔趣阁小说
		第一次更新:发现一个问题,就是有时候网页排版有问题的话容易下载到多余章节,如下图所示: 网站抽风多了一个正文一栏,这样的话就会重复下载1603--1703章节. 解决办法: 于是在写入内容前加了一个章 ... 
- scrapy框架爬取笔趣阁
		笔趣阁是很好爬的网站了,这里简单爬取了全部小说链接和每本的全部章节链接,还想爬取章节内容在biquge.py里在加一个爬取循环,在pipelines.py添加保存函数即可 1 创建一个scrapy项目 ... 
- python入门学习之Python爬取最新笔趣阁小说
		Python爬取新笔趣阁小说,并保存到TXT文件中 我写的这篇文章,是利用Python爬取小说编写的程序,这是我学习Python爬虫当中自己独立写的第一个程序,中途也遇到了一些困难,但是最后 ... 
- bs4爬取笔趣阁小说
		参考链接:https://www.cnblogs.com/wt714/p/11963497.html 模块:requests,bs4,queue,sys,time 步骤:给出URL--> 访问U ... 
- python爬虫-《笔趣看》网小说《悟空看私聊》
		小编是个爱看小说的人,哈哈 # -*- coding:UTF-8 -*- ''' 类说明:下载<笔趣看>网小说<悟空看私聊> ''' from bs4 import Beaut ... 
- python应用:爬虫框架Scrapy系统学习第四篇——scrapy爬取笔趣阁小说
		使用cmd创建一个scrapy项目: scrapy startproject project_name (project_name 必须以字母开头,只能包含字母.数字以及下划线<undersco ... 
- python3 爬虫继续爬笔趣阁 ,,,,,,,
		学如逆水行舟,不进则退 今天想看小说..找了半天,没有资源.. 只能自己爬了 想了半天.,,,忘记了这个古老的技能 捡了一下 import requests from bs4 import Beaut ... 
- Python爬取笔趣阁小说,有趣又实用
		上班想摸鱼?为了摸鱼方便,今天自己写了个爬取笔阁小说的程序.好吧,其实就是找个目的学习python,分享一下. 1. 首先导入相关的模块 import os import requests from ... 
随机推荐
- NoSQL-Redis【1】-控制台配置密码
			1.设置密码为123456 CONFIG SET requirepass 123456 2.验证密码 AUTH 123456 3.redis-cli连接 @ECHO OFF redis-cli.exe ... 
- linux查看和修改当前系统时间
			一.查看和修改Linux的时区 1. 查看当前时区 命令 : "date -R" 2. 修改设置Linux服务器时区 方法 A 命令 : "tzselect" ... 
- 【原】文本图片自适应高度小bug以及解决办法
			自定义cell的文本图片自适应高度代码,如果存在自定义的cell赋值封装,就必须将自适应高度代码写在这个方法中 
- 如何在2016年成为一个更好的Node.js开发者
			本文主要讨论一些进行Node.js开发的最佳实践和建议,这些建议不仅仅适合开发者,还适合那些管理与维护Node.js基础架构的工作人员.遵循本文提供的这些建议,能够让你更好的进行日常的开发工作. St ... 
- requestAnimationFrame制作动画:旋转风车
			在以往,我们在网页上制作动画效果的时候,如果是用javascript实现,一般都是通过定时器和间隔来实现的,出现HTML5之后,我们还可以用CSS3 的transitions和animations很方 ... 
- bzoj3083 遥远的国度 题解
			题目大意: 给定一棵有根树,每个点有一个权值,提供三种操作: 1.将x节点变为根节点 2.将x到y路径上的点的权值全部改为v 3.询问x的子树中点权的最小值 思路: 用DFS序剖分,记录每个节点入栈出 ... 
- 据说最近IMO中国队失利的一题
			(图基于Microsoft PaintBrush技术构建) 平面几何是可以难得出蛆的.这道题难在多圆.高度非对称和具有一定复杂性.如图,对ABC,H是垂心,O是垂足,M是中点.QK在ABC外接圆上,均 ... 
- 洛谷 P1262 间谍网络 Label: Kosarajn强联通
			题目描述 由于外国间谍的大量渗入,国家安全正处于高度的危机之中.如果A间谍手中掌握着关于B间谍的犯罪证据,则称A可以揭发B.有些间谍收受贿赂,只要给他们一定数量的美元,他们就愿意交出手中掌握的全部情报 ... 
- background常用属性
			background-image:url('图片位置');//设置背景图片的位置 background-repeat:no-repeat;//图片是否重复显示(不重复) background-posi ... 
- 翻译-In-Stream Big Data Processing 流式大数据处理
			相当长一段时间以来,大数据社区已经普遍认识到了批量数据处理的不足.很多应用都对实时查询和流式处理产生了迫切需求.最近几年,在这个理念的推动下,催生出了一系列解决方案,Twitter Storm,Yah ... 
