AdvertCN - 广告中国

 找回密码
 立即注册

QQ登录

只需一步,快速开始

Binom
 谷歌+Bing+TT+MSN官方代理 
⚡️按条S5代理⚡️静态⚡️独享⚡️5G⚡️最干净<Wifi住宅+5G移动>IP代理泰国仓储,本土仓发货2-3元/单
指纹浏览器,就用AdsPower谷歌/FB/Bing/Yahoo代理商开户7200W全球动态不重复住宅IP代理BINOM TRACKER 60% OFF!
【广户】
⚡️我们很有钱这些广告位都是我买的FB/Google/TK点我开户⚡️
FB/TT/KW 加白开户ADPLEXITY + ADVERTCN比Adplexity还好用的Spy工具MediaGo+Taboola+Ob开户
百度国际MediaGo⚡️让产品狂奔全球百度国际,高点击转化,快速放量百度国际MediaGo,独家原生流量虚拟信用卡+独立站收款
行业首创新型指纹Cloak, 谷歌奇效!Kookeey⚡️100%独享⚡️原生住宅IP⚡IPFoxy住宅代理全场88折⚡全球虚拟卡, 支持U充值
免账户投放 FB 广告(送项目)2024做什么 - Media buy 项目库免费黑五教程(持续更新、欢迎交流)Facebook 批量上广告
Bridgeway - 联盟营销网络各种主页、账单户、BM户(优势)⚡️个人户,bm户不限额,账单户Adsterra 的CPA/CPM/CPC 网站流量
在线注册美国/英国/香港等海外公司EU KETO/CBD - JumbleberryFB二三解1元/个9Proxy ⚡️ $0.04/IP, 无限带宽
cloak斗篷/ss/nutra/cpa/DatingFB号商直销-24小时自动发货Facebook个号0.01一个FB个号1块一个
FB账号0.1一个FB顶级服务商「Facebook广告账号/批量采购」广告位出租
全球低价纯净住宅/移动IP-免费试用广告代投, 东南亚物流, 虚拟信用卡VMLogin指纹浏览器+多账号防关联 
查看: 7397|回复: 7

[业界] 求推荐一个一键提取网站里面的URL且根据域名去重复的小...

[复制链接]

36

主题

138

广告币

225

积分

初级会员

Rank: 2

积分
225
发表于 2016-2-26 16:08:04 | 显示全部楼层 |阅读模式
回复

使用道具 举报

2

主题

1356

广告币

1717

积分

高级会员

Rank: 4

积分
1717

社区QQ达人

发表于 2016-2-26 16:17:11 | 显示全部楼层
  1. #region 抓取全站链接
    ! k$ o( x9 ^: v$ O2 B/ ?2 T3 W$ s7 S! W
  2.         public static List<string> GetAllHref(string url)
    / W4 |, n  ^; B. p. X
  3.         {. \9 ^; k+ U- V) V
  4.             List<string> allHref = new List<string>();
    , ?* B/ K: |" f- y2 w
  5.             try6 P2 L. }3 j. e% ]) ?7 S! r7 @
  6.             {
    " ~7 a6 {7 A: h6 a1 R8 c2 ~. ^9 Y
  7.                 string strhtml = soso.getHtml(url, "", true);
    - F5 P2 D' v. C' W
  8.                 if (strhtml != "error")
    4 j# B4 m" I8 q" a2 ^+ n) M
  9.                 {
    6 h' c& q4 h( O/ j! _& ^
  10.                     Regex reg = new Regex(@"(?is)<a[^>]*?href=(['""]?)(?<url>[^'""\s>]+)\1[^>]*>(?<text>(?:(?!</?a\b).)*)</a>");3 \* t/ X7 f9 [+ P
  11.                     MatchCollection mc = reg.Matches(strhtml);  k- g$ O& L& u' t
  12.                     foreach (Match m in mc)
    1 p3 ~4 t0 k" e! q( I! x
  13.                     {
    6 ~' @0 g$ a: _1 j
  14.                         Uri uri = new Uri(url);
    . G/ S4 j" @- B8 B1 `+ ?
  15.                         Uri thisUri = new Uri(uri, m.Groups["url"].Value);
    7 a, M) i# r( l. v! v; S
  16.                         string fullUrl = "";
    ! Y3 b& t' }3 B2 j+ t0 s: C+ h9 l
  17.                         if (m.Groups["url"].Value.StartsWith("http")): T# J2 E! G& @: ^7 {9 b
  18.                         {
    9 r% p! e+ u% [( J" E- Z
  19.                             fullUrl = m.Groups["url"].Value;
    $ A% l! U8 y. ?& V+ m+ p
  20.                         }3 ?& z; p; B3 F0 {% {" p1 }
  21.                         else
    2 R9 `/ B3 M" K+ d/ b9 I; L
  22.                         {2 T  Y4 C% Q; a1 f
  23.                             fullUrl = thisUri.ToString();
    3 i) X# `1 a2 J' L% r; I
  24.                         }
    ) l) H. z+ [4 m* v
  25.                         allHref.Add(fullUrl);
    ) l) n( n' a, v8 a3 C$ ^
  26.                         //Console.WriteLine("原链接:" + m.Groups["url"].Value);
    9 P7 W+ j  t  k" s+ j6 z
  27.                         //Console.WriteLine("文本标记:" + m.Groups["text"].Value);
    6 L* b. \3 _6 x0 U0 }9 k& G. n# x, c( t( i
  28.                         //Console.WriteLine("补全链接:" + fullUrl);
      g- H1 A- \& G  R# ^) z, Q% J/ S
  29.                         //Console.WriteLine("…………………………………………");% R* X" f0 V7 F
  30.                     }  v( q3 E. D; M- d
  31.                 }/ q" I) T5 q, x/ p
  32.             }
    : X5 U  o( ?" U, f  a! _2 W0 D( J
  33.             catch (Exception ex)
    . q' e: V9 J0 r4 a' ^
  34.             { }! ^4 ]* n# e+ ?6 @
  35.             return allHref;$ x) m" G& {0 M; j; _1 t
  36.         }
    4 g+ \% \6 d1 \8 }. V3 S2 z  l
  37.         #endregion
复制代码

& U7 U6 O/ k1 v% v/ ^2 `
& o. z9 f! I( q( ]$ _' K3 Z  [3 ^

  1. ! S; \/ T% z5 S0 q! p/ V) c3 v% T

  2. : |" Q0 y8 T: x2 c# d  g

  3. & c8 D- E" V( D6 D
  4. #region 数据去重
    2 q! d# C9 n% N% y9 I: n8 h' a
  5.         /// <summary>; O: Z& _+ y  b9 f3 _* l
  6.         /// List<string>去重& u) L& w$ a7 H
  7.         /// </summary>
    1 K; z# f) ^% R6 _0 X- r% z1 S* C6 R
  8.         /// <param name="list"></param>9 e  B& H3 g; d1 ^+ C2 e# C
  9.         /// <returns></returns>( G& l( x# k1 _7 L: n' v
  10.         public static List<string> getUnqueList(List<string> list)
    7 s- P% E  u7 A0 f, h
  11.         {
    4 Z0 X! a$ L; d- ?( S6 \7 ?1 f
  12.             List<string> list1 = new List<string>();
    4 f& Q) w; [3 D
  13.             Hashtable hash = new Hashtable();7 i" Q$ G: ]9 X+ G8 z# s3 r4 Y
  14.             foreach (string s in list)6 M1 u; }- ^* Z. [
  15.             {' P* z* u+ H- y
  16.                 if (!hash.ContainsKey(s))! L. l8 W  J- w6 L+ M7 N
  17.                 {( @7 q) @8 Z& g; q+ i
  18.                     hash.Add(s, s);$ _8 M* g$ E5 ?- X
  19.                     list1.Add(s);2 Q/ b  q! i' D9 s6 N
  20.                 }
    + H& f( n: a" Z* ^
  21.             }
    2 }/ \( `' p' F- h2 |% n) U1 P
  22.             hash.Clear();
    / P. s6 }* _, ]( j# o$ [( d
  23.             hash = null;8 ^8 b3 p# V! o8 N5 ?
  24.             return list1;
    # U0 S& g1 p+ B. m3 H
  25.         }; e" n  |# I  C$ N+ g
  26.         #endregion
复制代码
- C# @' w- z) U! D5 y3 l( W& T
5 d9 V( {: J' }2 p

点评

谢谢分享  发表于 2016-2-27 15:15
十分感谢!!!非常感谢!!  详情 回复 发表于 2016-2-26 16:20
回复 支持 反对

使用道具 举报

36

主题

138

广告币

225

积分

初级会员

Rank: 2

积分
225
 楼主| 发表于 2016-2-26 16:20:16 | 显示全部楼层

9 Z: O) j2 Y: I8 `十分感谢!!!非常感谢!!

点评

缺少一个gethtml,用下面这个:  详情 回复 发表于 2016-2-26 16:23
回复 支持 反对

使用道具 举报

2

主题

1356

广告币

1717

积分

高级会员

Rank: 4

积分
1717

社区QQ达人

发表于 2016-2-26 16:23:12 | 显示全部楼层
guys 发表于 2016-2-26 16:20
  l4 y" Z7 K$ n% N十分感谢!!!非常感谢!!
+ X% r" E( v4 B1 D% k. i
缺少一个gethtml,用下面这个:- S5 |' d* N# y$ R, u/ m
  1.      public string getHtml(string url, string charSet, bool UseUTF8CharSet)//url是要访问的网站地址,charSet是目标网页的编码,如果传入的是null或者"",那就自动分析网页的编码
    * S) z" s- M+ O3 f
  2.         {6 w3 Y8 y  ^5 H: L' O8 Y  L
  3.             string strWebData = "error";
    * X  X. Z" {* h' n
  4.             try3 `+ {* G' ]) f0 g$ _: a
  5.             {& V4 {+ D/ H# X' x9 a+ o& D# \
  6.                 WebClient myWebClient = new WebClient(); //创建WebClient实例myWebClient
    6 {$ z& v4 j+ \5 C
  7.                 // 需要注意的:
    + z6 |1 }! Z4 i
  8.                 //有的网页可能下不下来,有种种原因比如需要cookie,编码问题等等
    2 x: y% L2 J1 k
  9.                 //这是就要具体问题具体分析比如在头部加入cookie 4 s4 {1 i9 d$ N: x
  10.                 // webclient.Headers.Add("Cookie", cookie); ) S6 X: @* }/ P. p6 K
  11.                 //这样可能需要一些重载方法。根据需要写就可以了' a! A+ f0 X0 @% V! S) c; ^- G! ]8 P
  12.                 myWebClient.Headers.Add("User-agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)");
    + p2 u3 `& i( }2 Q" ^6 R/ f5 `
  13.                 //myWebClient.Headers.Add("User-agent", "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)");- Z: R0 i7 h' M$ ^1 Z2 O5 n
  14.                 //获取或设置用于对向 Internet 资源的请求进行身份验证的网络凭据。
    ) I" y- `. ^2 @2 N
  15.                 myWebClient.Credentials = CredentialCache.DefaultCredentials;
    1 o- i' ]7 i2 U5 t! B, P3 `4 C
  16.                 //如果服务器要验证用户名,密码
    # R. E4 P% J% c* U# r; Q  j5 w
  17.                 //NetworkCredential mycred = new NetworkCredential(struser, strpassword); 0 C+ J5 m. Y# r4 }: T
  18.                 //myWebClient.Credentials = mycred;
    7 @1 u- ]& x' j/ T( i% t- V
  19.                 //从资源下载数据并返回字节数组。(加@是因为网址中间有"/"符号) 1 y$ Y6 f5 Z+ v- @# \
  20.                 byte[] myDataBuffer = myWebClient.DownloadData(url);
    / ]( {/ k/ c0 [: C
  21.                 strWebData = Encoding.Default.GetString(myDataBuffer);, x9 d2 k& v0 H3 P: ^  g5 d
  22. # f) A2 x" p2 y3 O" g' C! ~) u8 r; x
  23.                 //获取网页字符编码描述信息 - e  ~  L% E4 _9 J' X% V: b
  24.                 Match charSetMatch = Regex.Match(strWebData, "<meta([^<]*)charset=([^<]*)"", RegexOptions.IgnoreCase | RegexOptions.Multiline);  u! q& x! B( i& V: X
  25.                 string webCharSet = charSetMatch.Groups[2].Value;
    # l- |) N( H1 X+ F! a0 Y  b  V
  26.                 if (charSet == null || charSet == ""), `7 C' A) u$ ]  k3 f$ n
  27.                     charSet = webCharSet;8 W. o/ i& _1 d& B- `  ^
  28.                 if (charSet.Length > 0)! b& c8 h" j8 q0 ~2 l
  29.                 {, P3 ^" C8 F- B
  30.                     charSet = charSet.Replace(""", "");# O) n$ W8 V0 ~
  31.                 }
    2 L0 L" {+ G+ c4 r8 Y4 |
  32.                 if (UseUTF8CharSet)
    5 \% O8 n/ V) W; Y, F8 R3 Z
  33.                 {9 q3 ?+ s$ Y1 `- e0 A6 n5 `
  34.                     if (charSet == null || charSet.Length == 0)
    . K, T0 }0 [! `5 ?* c
  35.                     {
    , r7 I6 F& L7 f+ r$ b! z  }
  36.                         charSet = "utf-8";
    " D' O. @! o& k5 U
  37.                     }% I: I$ N3 c' b
  38.                 }+ c: w2 r2 d2 R* S
  39.                 if (charSet != null && charSet != "" && Encoding.GetEncoding(charSet) != Encoding.Default)
    2 T& G; J+ J, n- D* @3 r+ r
  40.                     strWebData = Encoding.GetEncoding(charSet).GetString(myDataBuffer);
    9 D& D0 j" f& r, V4 A) j9 k

  41. $ @3 Q! R) h) {3 \# B* m$ m/ {
  42.             }
    : I, f5 p- h8 {- t+ C, H" V* M- G
  43.             catch (Exception)
    $ k0 D+ d2 X5 R2 T+ K1 f  X% R3 H
  44.             {" ?* p7 D+ U9 G) t5 ?
  45.                 strWebData = "error";& w4 @4 o" Z7 S! t
  46.             }( z! ^5 o( K( N

  47. ! a- s  t; h+ N. E( ]2 \" ~: Q
  48.             return strWebData;3 f6 ?( X8 e1 J- r- D
  49.         }
复制代码
. X6 x6 k1 m& m$ H
8 F2 b7 i4 o3 _& ~
回复 支持 反对

使用道具 举报

0

主题

0

广告币

13

积分

新手上路

Rank: 1

积分
13
发表于 2016-2-26 19:05:59 | 显示全部楼层
weishaneweishane
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Binom

关于我们|联系我们|DMCA|广告服务|小黑屋|手机版|Archiver|Github|网站地图|AdvertCN

GMT+8, 2024-5-29 14:16 , Processed in 0.046599 second(s), 15 queries , Gzip On, MemCache On.

Copyright © 2001-2023, AdvertCN

Proudly Operating in Hong Kong.

快速回复 返回顶部 返回列表