php批量扒取网站内容

最近发现了一个“小气”的学习站点。网站内容竟然不让复制,这样搞,怎么让我们考试的时候弄小抄,难不成要一个字一个字的去打不成。所幸的是咱是搞技术的,这点问题还是难不倒的,你不让复制刚好,这下我还懒得麻烦呢。直接搞个脚本把这一课的内容全扒取下来看岂不更方便。

说搞就搞,先是看源代码。不过网页禁止了右键,点右键有如下提示:

这个倒不难,查看网页源代码的方法太多了,不知道的可以网上找找吧。查看到了,源代码,发现没找页面中的内容未在源代码中显示。接着拿出httpwatch抓包分析,在其中的另外一个链接里找到页面源代码,不过源代码是加密过的。如下:

不过这个加密有点菜,里面已经明明白的写着是base64加密了。这个解码并不难,linux系统自带的base64工具就能完成:

[root@web20 php]# base64 --help
Usage: base64 [OPTION] [FILE]
Base64 encode or decode FILE, or standard input, to standard output.
  -w, --wrap=COLS       Wrap encoded lines after COLS character (default 76).
                        Use 0 to disable line wrapping.
  -d, --decode          Decode data.
  -i, --ignore-garbage  When decoding, ignore non-alphabet characters.
      --help            Display this help and exit.
      --version         Output version information and exit.
如果[文件]缺省,或者[文件]为 - ,则读取标准输入。
The data are encoded as described for the base64 alphabet in RFC 3548.
Decoding require compliant input by default, use --ignore-garbage to
attempt to recover from non-alphabet characters (such as newlines) in
the encoded stream.

base64 -d 文件名就行了。不过解码后发现,解出的结果是url化的。得到的结果如下:

%20%20%5B%E8%AF%86%E8%AE%B0%5D%E4%BC%9A%E8%AE%A1%E7%9A%84%E6%B6%B5%E4%B9%89%E6%98%AF%E4%BB%80%E4%B9%88%EF%20%20

看到这个结果是不是又犯难了,其时这个时候应该感到高兴才是。因为结果已经出来一半了。这个得出的结果不正是和在url里进行汉字搜索得到的的URL结果一样吗?

如:我在hao123的百度搜索里找"测试",得到的页面url是

http://www.baidu.com/s?word=%B2%E2%CA%D4&tn=sitehao123

测试两个汉字在url中就变成了%B2%E2%CA%D4 ,知道原理了。解码还不是很简单。php中有个函数urldecode就是干这个用的。下面列出来我全部的url代码:

<?php
for ($i=18291; $i<=18788 ;$i++ ){
$content = file_get_contents("http://www.XXX.com/test.php?wiki_id=".$i);
//echo $content;
$spwt1=explode("问题:",$content);
$spwt2=explode('));<',$spwt1[1]);
$spdn=explode("答案:",$spwt2[1]);
//echo $spwt2[0];
//echo $spdn[1];
preg_match('/base64decode("(.*?)"/',$spwt2[0],$matchesw);
$wen=urldecode(base64_decode($matchesw[1]));
echo $wen;
echo "n";
echo "n";
preg_match('/base64decode("(.*?)"/',$spdn[1],$matchesd);
$da=urldecode(base64_decode($matchesd[1]));
echo $da;}
?>

此外为了我出于对那个站点的知识产权的保护,把他的URL给换成了http://www.XXX.com/test.php 。(毕竟人家也是一点点做上去的也不容易。)刚好我服务器上也有php环境,直接运行php test.php。结果非常喜人,一会儿功夫,这一课目的内容全出来了。

ok,放到word里再重新编辑下,打印出来看,多爽!




本站的发展离不开您的资助,金额随意,欢迎来赏!

You can donate through PayPal.
My paypal id: itybku@139.com
Paypal page: https://www.paypal.me/361way

分类: perl/php/python/gawk/sed 标签:
  1. 本文目前尚无任何评论.