一个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 ...