前几天需要用到云展网下载一些书,但是网页没有提供下载按钮。
看了一下代码,比较简单,所以随手写了一个php爬取文件。
用完之后就废弃了,想着也没什么用,就分享给大家。
毕竟是一次性的代码,可能写的比较简陋,相信会有人写出更优雅的,故此代码仅供参考。
1. 在CLI模式下可以把$bookLink改成 $argv[1]
2. $savePath是你的文件保存的临时目录,每次运行会覆盖。
3. 只有$bookLink和$savePath需要修改.
下载好后,文件名是数字顺序排列的JPG文件,可以直接用Adobe DC合并成一个PDF文件。
[PHP] 纯文本查看 复制代码
<?php
$bookLink = \’http://www.yunzhan365.com/12345679.html\’; //你要下载书籍链接
$savePath = \’F:/新建文件夹/真人学习\’; //你的文件保存目录
//以下内容勿修改
$parseBook = cget($bookLink);
$bookInfo = [];
$flag = preg_match(\’/new EmbedPanel[\\s\\S]+title:\\s*"(.*?)"[\\s\\S]+?pages:\\s*"(.*?)"[\\s\\S]+?url:\\s*"(.*?)"/\’, $parseBook, $bookInfo);
if ($flag === 0) {
die(\’未找到书籍信息\’);
}
$bookName = $bookInfo[1]; //书名
$bookUrl = $bookInfo[3]; //书的链接
$totalPage = $bookInfo[2]; //总页数
$imgPath = \’files/mobile/{order}.jpg\’;
echo "书籍名称:$bookName\\n总页数:$totalPage\\n";
fetchAll($bookUrl, $totalPage, $savePath);
// fetch($bookUrl,\’demo.jpg\’);
function fetchAll($bookUrl, $totalPage, $savePath)
{
$imgPath = \’files/mobile/{order}.jpg\’;
$urls = [];
for ($i = 1; $i <= $totalPage; $i++) {
$urls[$i][\’url\’] = $bookUrl . str_replace(\'{order}\’, $i, $imgPath);
$urls[$i][\’name\’] = $savePath . $i . \’.jpg\’;
}
foreach ($urls as $url) {
$content = cget($url[\’url\’]);
if (empty($content)) {
echo $url[\’url\’] . \’下载失败,请重试\’ . "\\n";
continue;
}
if (file_put_contents($url[\’name\’], $content) === false) {
echo $url[\’url\’] . \’保存失败,请重试\’ . "\\n";
continue;
}
echo $url[\’name\’] . \’保存成功\’ . "\\n";
}
}
function fetch($bookUrl, $name, $savePath)
{
$content = cget($bookUrl);
if (empty($content)) {
echo $bookUrl . \’下载失败,请重试\’ . "\\n";
return;
}
if (file_put_contents($savePath . $name, $content) === false) {
echo $url[\’url\’] . \’保存失败,请重试\’ . "\\n";
return;
}
echo $name . "保存成功\\n";
}
function cget($url, $post = \’\’, $cookies = \’\’)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, \’Nokia5250/10.0.011 (SymbianOS/9.4; U; Series60/5.0 Mozilla/5.0; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/525 (KHTML, like Gecko) Safari/525 3gpp-gba\’);
$post ? curl_setopt($ch, CURLOPT_POSTFIELDS, $post) : null;
$cookies ? curl_setopt($ch, CURLOPT_COOKIE, $cookies) : null;
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$re = curl_errno($ch) == 0 ? curl_exec($ch) : \’\’;
curl_close($ch);
return $re;
}
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!603313839@qq.com
2. 请您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源
3. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
4. 不保证所提供下载的资源的准确性、安全性和完整性,源码仅供下载学习之用!
5. 不保证所有资源都完整可用,不排除存在BUG或残缺的可能,由于资源的特殊性,下载后不支持退款。
6. 站点所有资源仅供学习交流使用,切勿用于商业或者非法用途,与本站无关,一切后果请用户自负!