网站采集 学习步骤一

【全文】
主讲:树根香(460026275) www.79zw.com  群号: 17770150

本人在这个群里面也混了一段时间啦,一直当听众,潜水员,近日忧心忡忡啊,实在太担心,会被KING给T了,为了不被T,就申请讲课吧。SEO内容和黑站这方面的内容,群里面的牛人太多啦,我那点体会拿不出手。实在没有办法就把朋友的采集程序拿出来胡讲啦。第一次上课,就当是练兵,试各位大大不要拍砖,实在忍受不了,就把群消息关了吧。


一、采集器的制作的基本知识点。

1、懂一些简单的正则表达式的知识,知道些基本知识对大家在采集软件设置规则的时候是有帮助,正则表达式的一些基础知识是很容易掌握的,而绝大多数采集用的是最基本的正则表达式的内容。
 如:你起码要知道"." “\n” “\s” "\d" "*" "+" "?" "{3,5}" "[3-6]"。 了解这些简单正则式的基本含义,这里不作详细详解,大家可以从网上查到资料。我个人觉得正则还是比较容易学习,但是不经常使用的话,忘记的比较快。经常会出现边在网上查正则,边书写采集规则的情况。



2、会使用一些程序命令将网页的内容正确抓取下来。

-------使用webclient来抓取网页内容
String PageUrl = @"http://www.79zw.com/files/article/info/65/65670.htm";
WebClient wc = new WebClient();
///方法一:
Byte[] pageData = wc.DownloadData(PageUrl);
ContentHtml.Text = Encoding.Default.GetString(pageData);       


/// 方法二:
/// ***************代码开始**********
Stream resStream = wc.OpenRead(PageUrl);
StreamReader sr = new StreamReader(resStream,System.Text.Encoding.Default);
ContentHtml.Text = sr.ReadToEnd();
resStream.Close();
/// **************代码结束********
///
wc.Dispose();  

-------使用webrequest来抓取网页内容

PageUrl = @"http://www.79zw.com/files/article/info/65/65670.htm";
WebRequest  request = WebRequest.Create(PageUrl);
WebResponse response = request.GetResponse();
Stream resStream = response.GetResponseStream();       
StreamReader sr = new StreamReader(resStream, System.Text.Encoding.Default);
String content = sr.ReadToEnd();
resStream.Close();
sr.Close();

------使用xmlhttp来抓取网页内容
XMLHTTP xhttp = new XMLHTTP();
string url=@"http://www.79zw.com/files/article/info/65/65670.htm";
xhttp.open("post", url, false, null, null);
xhttp.send("");
Byte[] bb = (Byte[])xhttp.responseBody;
xhttp.abort();


二、对小说站进行采集的思路。

就看一下如何采集世纪,世纪的站长不在这里吧?

只要知道一个书本的ID号就可以开始啦。。。。。

书籍简介页面: http://www.79zw.com/files/article/info/59/59295.htm


<font size="4" color="red">佛本是道<img
        <td width="25%">类    别:仙侠奇侠</td>
        <td width="25%">作    者:梦入神机</td>
        <td width="25%">管 理 员:</td>
        <td width="25%">全文长度:2008072字</td>
        <td>最后更新:2007-03-04</td>
        <td>文章状态:完成</td>
        <td>授权级别:暂未授权</td>
        <td>首发状态:他站首发</td>
        <td>总点击数:13197071</td>
        <td>本月点击:693848</td>
        <td>本周点击:270326</td>
        <td>本日点击:20941</td>




书籍目录页面: http://www.79zw.com/files/article/html/59/59295/index.html


<td colspan="3" class="vcss">
            正文            </td>
  </tr>
        <tr>
    <td class="ccss">
            <a href="1639383.html">前 言</a>
            </td>
    <td class="ccss">
            <a href="1639384.html">第一章 原 由 第一节 奥林匹亚风云</a>
        </td>
    <td class="ccss">
            <a href="1639385.html">第二节神符巨人</a>
        </td>
  </tr>
      
书籍章节内容页面: http://read.2100book.com/files/article/html/45/45647/2144288.html




通过前面的采集代码,一层一层的从网页上抓取数据,然后根据你设置的正则表达式标签,把所需要的内容取出来,判断是文字内容,还是图片内容,然后分别写入后端数据库。

如果是批量采集就按照设置的ID号不断循环,直到全部采集完。如果你设置从1-50000号开始采集,就基本可以目标书站的书全部采集完。

就算目标站中有空号,比如说:4678这个号没有书,这样大抓取这个号的时候会出现错误,通过正则采集判断是空号就放弃采集这个ID号就成啦。

手上的蓝心采集已经实现了三种批采模式






三、防采集的基本思路。

目前而言,防采集还没有一个还没有一个完全彻底的解决方案
一,增加采集的规则难度,经常变换规则,这种方法对于防止采集是比较容易使用的方法,而且效果比较好,容易。
大家请看两个地址:
1、        http://read.2100book.com/files/article/html/45/45647/index.html
2、        http://www.79zw.com/files/article/html/39/39621/index.html


抽出我们所需要的资料
世纪:<a href="1639384.html">第一章 原 由 第一节 奥林匹亚风云</a>
      <a href="1639385.html">第二节神符巨人</a>
             <a href="1639386.html">第三节异次元空间门</a>
          <a href="1639387.html">第四节 龙之墓地</a>
世纪的章节规则:<a href=”\d+.html”>[^<|>]*</a>

79:<a  href=696794.html title="第一章原由第一节奥林匹亚风云">第一章原由第一节奥林匹亚风云</a>
<a title=" href=8384.html 生成时间:2007-3-9 12:33:57" href=696795.html>第二节神符巨人</a>
<a  href="696796.html">第三节异次元空间门</a>
79的章节规则就不好写啦,有3个,难度比世纪就大多啦。
如果把内容页和图片页的规则也设置很多个的话,这样采集的难度就更大了,非牛人不能采集。



二、可以设置IIS和apache对图片的采集进行限制。
IIS通过重写一些附加模块可以实现,但是直接在IIS里通过设置来实现方法比较困难,需要附加模块来做这个事。
Apache可以实现图片简单防采和防盗链,设置比较简单,而且很实用。
SetEnvIfNoCase Referer "^ http://www.88zw.com" local_ref=1
SetEnvIfNoCase Referer "^ http://88zw.com" local_ref=1
SetEnvIfNoCase Referer "^$" local_ref=1
SetEnvIf Request_URI /images/logo(.)+ local_ref=1

<FilesMatch "\.(gif|jpg|bmp|jpeg|png)">
Order Allow,Deny
Allow from env=local_ref
Allow from 127.0.0.1
</FilesMatch>


最后就蓝心采集作一些说明:
蓝心采集器,是蓝心受朋友所托花了两个多月时间所写的程序。后来因为用这个采集器与一个朋友交换软件,而这个朋友一时不慎被盗走,现在很多书站站长手上都有啦,流出去的版本是还不成熟。很多功能没有实现,如与目标采集站完全一致,随着目标站的改变而改变,不能实现图片与文字的换版,不能采集文奇系统等等。

你可能感兴趣的:(学习)