[C#]网络扒虫

原创 2011年01月17日 19:14:00

这个其实不能算是完全意义上的网络扒虫,只是对某个社交网络进行扒取,然后得到邻接矩阵,以及相应的头像等信息。

 

 

 

主要的步骤:

1,扒取信息

2,正则匹配

 

 

正则表达式主要参考了:http://deerchao.net/tutorials/regex/regex.htm

 

扒取信息中用的是 WebClient这个方法相对HttpRequest的HttpResponse更简洁一些。

 

难点是克服网站的认证机制,用的是保存Cookies的方法。

 

扒虫部分代码:

using System;

using System.Net;

using System.Text;

using System.Text.RegularExpressions;

 

public class Crawler

{

    public static string GetCont(string url)//扒取页面

    {

        string cookies = "_r01_=; depovince=BJ; p=; ap=; t=; societyguester=55a777838c4286ab5f657382dbd25c736; id=; xnsid=";

        WebClient WebC = new WebClient();

        WebC.Headers.Add("Cookie", cookies);

        byte[] WebPa = WebC.DownloadData(url);

        string PageHtml = Encoding.UTF8.GetString(WebPa);

        return PageHtml;

    }

    public static void GetImag(string ImgUrl,string UserName)//下载小图片

    { 

        string imageFileName;

        string imageFilePath;

        WebClient myClient = new WebClient();

        Regex regex = new Regex("//w*");

        MatchCollection UsNameMatches = regex.Matches(UserName);

        imageFileName = UsNameMatches[0].Value.ToString() + ".jpg";

        imageFilePath = @"D:/picture/" + imageFileName;

        try

        {

            myClient.DownloadFile(ImgUrl, imageFilePath);

        }

        catch

        {

        }

    }

}

 

//正则表达式部分

using System.Text;

using System.Text.RegularExpressions;

 

public class MyRegex

{

    public static string[] GetAddr(string PageHtml)

    {

        string[] PageUrl=new string[24];

        Regex regex = new Regex("http://www..com/profile.do//?portal=//w*&id=//d+(?=/"//stitle=)");

        MatchCollection urlMatches = regex.Matches(PageHtml);

 

        for(int i=0;i<urlMatches.Count;i++)

        {

            PageUrl[i]=urlMatches[i].Value.ToString();

        }

        return PageUrl;

    }

    public static string[] GetImgAddr(string PageHtml)

    {

        string[] ImgAddr = new string[24];

        Regex regex = new Regex("(?<=stats=/"pf_friend/"//ssrc//=/").*(?=/"//swidth=/"50/"//s/>)");

        MatchCollection ImgMatches = regex.Matches(PageHtml);

        for(int i=0;i<ImgMatches.Count;i++)

        {

            ImgAddr[i] = ImgMatches[i].Value.ToString();

        }

        return ImgAddr;

    }

    public static string[] GetUsName(string PageHtml)

    {

        string[] UsName = new string[24];

        Regex regex = new Regex("(?<=title=/"查看).*(?=的个人主页/">//W<img//sstats=/"pf_friend/")");

        MatchCollection UsNameMatches = regex.Matches(PageHtml);

        for (int i = 0; i < UsNameMatches.Count; i++)

        {

            UsName[i] = UsNameMatches[i].Value.ToString();

        }

        return UsName;

    }

}

推荐一款很好用的一款扒网站的工具

名称:teleport ultra 下载官网http://www.tenmax.com/teleport/pro/download.htm 1、打开软件 ...
  • lemon_LLo
  • lemon_LLo
  • 2017年04月24日 22:48
  • 10958

神器扒网站——teleport ultra

神器扒网站——teleport ultra
  • leisure_life
  • leisure_life
  • 2017年04月06日 09:07
  • 5838

建站仿站扒站必备工具之ScrapBook火狐插件推

CMS仿站都是将整个网页保存下来,然后去修改图片和css路径等,图片路径存在于网页代码里面这样通常是能保存下来的,但是假如图片存在CSS文件里 呢?光这样保存是不行的。除非打开CSS文件然后一个一...
  • myweishanli
  • myweishanli
  • 2014年04月03日 09:29
  • 1564

Scrapy学习一:Scrapy基本教程

Scrapy基本教程 这篇教程将分5点阐述Scrapy: 如何创建Scrapy project 如何写一个扒站并提取数据的Spider 使用命令行输出爬获的数据 如何递归地获取下一页 使用Spide...
  • JollyTRjano
  • JollyTRjano
  • 2017年07月27日 14:28
  • 173

【小工具】仿站小工具的使用及下载

【小工具】仿站小工具的使用及下载,web前端,前端工具
  • qq_36308324
  • qq_36308324
  • 2017年03月14日 13:51
  • 1349

Mac/Linux/Windos下仿站工具,基于Python的仿站工具,earnp/imitation仿站工具发布

本工具为Pytorch中文网提供,为earnp/imitation仿站工具,可以快速提取网站,可自动提取Html,Css,Js,Img,背景图片等,自动分文件存储,方便便捷!Github地址为:htt...
  • ls714628712
  • ls714628712
  • 2017年07月13日 18:04
  • 580

使用php curl扒图片的简单实例

最近研究了一下爬虫相关的一些代码,可以简单理解爬虫其实就是访问页面,并将其信息进行一定的归纳或者处理,达成自己预想的目标的程序,研究了一下后,参考网上的一些代码,自己封装了一个访问url并将上面的im...
  • meeeen7
  • meeeen7
  • 2017年02月22日 23:09
  • 1854

Python网络爬虫,在网站上扒数据

做科研的各位兄弟,有时候需要数据,但是无处获得,用Pyhton学会做网络爬虫之后,数据到处都是!!!...
  • qiangzaizaiO
  • qiangzaizaiO
  • 2016年10月06日 18:56
  • 2690

【详解】从b站抓取信息并存入数据库

本例我们做的事情,是将b站当前在线界面的20个视频的 av号、类型、作者名、视频名、点击量、弹幕数这些信息从网页上抓取,并存入数据库中进行简单分析。 整个步骤分两块---抓取和存数据 【...
  • AKAK714
  • AKAK714
  • 2015年11月30日 16:58
  • 2214

C#总结---扒一扒变量与常量的那些事

这次的自考科目为数据结构和信息系统开发与管理
  • hejingfang123
  • hejingfang123
  • 2017年10月22日 21:38
  • 81
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[C#]网络扒虫
举报原因:
原因补充:

(最多只允许输入30个字)