AdvertCN - 广告中国

 找回密码
 立即注册

QQ登录

只需一步,快速开始

PropellerAds
Google-Bing-Mediago-Criteo开户
⚡️按条S5代理⚡️静态⚡️独享⚡️5G广告专用虚拟卡/U充值/高返点皇家代理IP⚡️#1性价比⚡️
Mediabuy⚡️玩家开户首选【鲁班跨境通-自助充值转账】FB/GG/TT❤️官方免费开户Affiliate 全媒体流量资源⚡️
Taboola/Outbrain /Bing⚡️一级代理开户投流-7*24h❤️人工在线【官方】❤️搜索套利买量投流开户独立站⚡️开户投放
⚡️AdsPower:安全不封号,高效自动化Google FB TK游戏代投⚡️E.PN 虚拟卡⚡️BINOM TRACKER 60% OFF!
比Adplexity还好用的Spy工具ADPLEXITY + ADVERTCN7200W全球动态不重复住宅IP代理虚拟信用卡+独立站收款
全球虚拟卡, 支持U充值Facebook 批量上广告尤里改 - FB 稳定投放免费黑五教程(持续更新、欢迎交流)
FB 三不限源头 - 自助下户充值转款各种主页、账单户、BM户(优势)⚡️TikTok企业户,bm户,账单户IPCola原生住宅IP⚡️$1.8/条双ISP
FB海外户、GG老户、TK加白老户海外CL企业户源头PTM虚拟卡[全新卡BIN+高返点]FB虚拟卡⚡️消费越多返现越多
最大欧洲Nutra网盟BA找量 FB个号1块一个TikTok2审户/老户/国内外端口/加白SX.ORG 高质量代理⚡235+ 地区
GG,FB,TK, 欧美源头, 欢迎合作❤️跨境债务催收/风险代理FB企业户海外户,授信户,TK加白户Proxy4Free独家住宅IP池❤️免费测试
联盟收款/海外资金下发/服贸结汇域名防红⚠斗篷工具/可试用3天广告位出租8500万高质量住宅IP,助力各种需求
虚拟卡返佣1%,国内持牌机构   
查看: 10001|回复: 7

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

[复制链接]

36

主题

210

广告币

294

积分

初级会员

Rank: 2

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

使用道具 举报

2

主题

1477

广告币

1820

积分

高级会员

Rank: 4

积分
1820

社区QQ达人

发表于 2016-2-26 16:17:11 | 显示全部楼层
  1. #region 抓取全站链接
    % I9 ]7 _- [( b! t
  2.         public static List<string> GetAllHref(string url)
    " y7 w7 a  A3 }
  3.         {8 D; N0 P4 V+ B; N
  4.             List<string> allHref = new List<string>();
    8 l7 _  y" B8 s/ @* N( E
  5.             try. y3 o: A4 |+ l" [! \7 P/ E6 w" \
  6.             {
    + m9 `- M. W0 z  ?
  7.                 string strhtml = soso.getHtml(url, "", true);" c( A' K# i- |) @: P
  8.                 if (strhtml != "error"); n. M; C' \( O% `' J. H
  9.                 {& k8 ^; Y& |! p1 [$ e8 }, ?) ?
  10.                     Regex reg = new Regex(@"(?is)<a[^>]*?href=(['""]?)(?<url>[^'""\s>]+)\1[^>]*>(?<text>(?:(?!</?a\b).)*)</a>");$ l! i8 U; l* m+ `# w$ ^7 y# O
  11.                     MatchCollection mc = reg.Matches(strhtml);2 a: \4 G  h! v/ e3 ^* Q4 U" u
  12.                     foreach (Match m in mc): W" Z1 d  a$ b* |7 _6 _7 N
  13.                     {3 L4 B6 ~" k% |7 y
  14.                         Uri uri = new Uri(url);
    ! g" v8 T( j( V+ u; |& ]
  15.                         Uri thisUri = new Uri(uri, m.Groups["url"].Value);% D6 S8 v( l9 \1 u6 L. L+ Y
  16.                         string fullUrl = "";
    ! m+ v: I, ~% p
  17.                         if (m.Groups["url"].Value.StartsWith("http"))
    . T0 v2 v1 n2 L& l2 R- p
  18.                         {1 u; Z; d" s; V+ R# j) @( r
  19.                             fullUrl = m.Groups["url"].Value;
    # [) F- K" u3 F+ o& X
  20.                         }
    0 v( E" p- A$ Q( R/ N6 S8 M
  21.                         else
    - |) P0 Z1 n* e+ G$ b: U" x3 P! _
  22.                         {
    ) C3 w( d+ ]2 Z: G* x( w
  23.                             fullUrl = thisUri.ToString();
    8 j! T9 Z+ P* O2 ~8 A
  24.                         }! V6 k6 V% I2 Q8 h& m- F! m) ~
  25.                         allHref.Add(fullUrl);5 ]0 D! _3 t! M5 s6 @; A0 t
  26.                         //Console.WriteLine("原链接:" + m.Groups["url"].Value);% o6 d9 k! V+ H8 O3 X
  27.                         //Console.WriteLine("文本标记:" + m.Groups["text"].Value);! M, `1 s1 T2 G+ G/ N9 K, R
  28.                         //Console.WriteLine("补全链接:" + fullUrl);' C3 @/ }6 N4 E( e! W% S
  29.                         //Console.WriteLine("…………………………………………");
    1 j5 B' L$ J. c, s5 ^5 K; x
  30.                     }
    . [- e% C; S$ |: L8 r7 z! ^& e
  31.                 }
    ! Q; U* U6 ~8 m5 ?* t5 D8 }6 v+ z
  32.             }
    4 E. Y. M! S" N9 A+ Z) e; p! s, Z
  33.             catch (Exception ex)" M% r9 P) Z4 R1 J
  34.             { }$ l# ~! N' [% I6 u2 w: z
  35.             return allHref;
    & ~4 |* E% e3 w# k( I
  36.         }
    3 W8 p% r) b# K5 ?& z/ v/ |% }
  37.         #endregion
复制代码

7 g) Z4 r( s( n9 Y5 f7 X4 Y% o  r  D  `" V
  1. # R2 U8 b* w4 W: j% q

  2. - y/ Y$ J) [4 D6 `. S" N
  3. / Z  ~* Y& J+ w) I& L: Z
  4. #region 数据去重" ]9 x7 o' @0 o) k; _1 O* a
  5.         /// <summary>
    ; l9 b  G- y$ G; [4 W' U4 E6 ^4 U
  6.         /// List<string>去重
    9 o9 z2 v. m% I) H
  7.         /// </summary>
    9 P2 W6 i$ V0 b5 e/ m  T
  8.         /// <param name="list"></param>
    . c3 w- h( Y( m5 |2 ~4 W
  9.         /// <returns></returns>
    ) a6 E0 J  f) b" U2 G8 c8 ?
  10.         public static List<string> getUnqueList(List<string> list)
    % ?4 w& _2 Y& U: w+ ^
  11.         {
    6 }! h0 ?! _. f( `: @( R0 i) K
  12.             List<string> list1 = new List<string>();$ N( \. ]( o/ C  s
  13.             Hashtable hash = new Hashtable();: K9 v% L3 O7 }% A3 ?, Q% v
  14.             foreach (string s in list)' Y# }( N0 b) c; e7 c9 C; k
  15.             {
    ) m9 {% D' }$ `. d& {; o: f8 B
  16.                 if (!hash.ContainsKey(s))6 u  D3 P# l+ V* Y, S& q
  17.                 {
    / l* G2 E( M% ?# E3 K$ |$ ?
  18.                     hash.Add(s, s);9 l$ e: j( I: x1 u% i$ q4 Q
  19.                     list1.Add(s);6 J1 Z" J- U! R* s$ {
  20.                 }! j2 _/ H0 h  m
  21.             }
    ( S1 L* |; I# ?! M6 s
  22.             hash.Clear();
    " k" H: x& b! X. D* P. p
  23.             hash = null;+ m2 J# F& F1 D5 r
  24.             return list1;  D2 B3 v. J0 i
  25.         }" ?$ A  \- b, w; K/ s* M' e/ R+ X
  26.         #endregion
复制代码

2 R6 k' ?- o* j. Q1 ?: V" n- m  b+ d; |$ I3 f

点评

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

使用道具 举报

36

主题

210

广告币

294

积分

初级会员

Rank: 2

积分
294
 楼主| 发表于 2016-2-26 16:20:16 | 显示全部楼层
" y: Z  ~0 y6 ^
十分感谢!!!非常感谢!!

点评

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

使用道具 举报

2

主题

1477

广告币

1820

积分

高级会员

Rank: 4

积分
1820

社区QQ达人

发表于 2016-2-26 16:23:12 | 显示全部楼层
guys 发表于 2016-2-26 16:20) f  g! p( e0 M1 h
十分感谢!!!非常感谢!!

8 ?* ?* U! f- m0 J, M9 t/ A, B2 {" N缺少一个gethtml,用下面这个:, Z% h( ^! `- Q! z# t( M
  1.      public string getHtml(string url, string charSet, bool UseUTF8CharSet)//url是要访问的网站地址,charSet是目标网页的编码,如果传入的是null或者"",那就自动分析网页的编码
    & {2 R- j: ^" p' t; N) w8 u* F; s
  2.         {' D4 [4 k# r# o; C# k  s0 j
  3.             string strWebData = "error";5 Q# T; l) q2 m8 D+ m2 i' {9 @' \
  4.             try
    ! ~# P5 z  ]5 g8 f$ Z% y" O' T
  5.             {1 T6 D& _& g; I- l* t  z6 H  m" ^
  6.                 WebClient myWebClient = new WebClient(); //创建WebClient实例myWebClient
    . D$ u* Z; a) t. d
  7.                 // 需要注意的:
    ! H$ H0 F2 F* T) {7 z
  8.                 //有的网页可能下不下来,有种种原因比如需要cookie,编码问题等等
      `5 K- P% U; O
  9.                 //这是就要具体问题具体分析比如在头部加入cookie 3 p# f, y% @) `) ]1 a" A1 v- J2 y: ?% ~
  10.                 // webclient.Headers.Add("Cookie", cookie); $ l( x9 K6 u" V; H4 ^. Q% R
  11.                 //这样可能需要一些重载方法。根据需要写就可以了) @6 N! X' T  \% K# g9 X2 Y
  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)");- W9 g9 m8 c% X1 I0 N5 z; T
  13.                 //myWebClient.Headers.Add("User-agent", "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)");
    / c; Z9 S4 C. G1 H
  14.                 //获取或设置用于对向 Internet 资源的请求进行身份验证的网络凭据。 4 p5 _4 D3 S4 I6 Q
  15.                 myWebClient.Credentials = CredentialCache.DefaultCredentials;* H! V! V/ j- Y( O* s7 N# ~
  16.                 //如果服务器要验证用户名,密码 ) @0 T; U  O' l3 I' T/ m  `5 P
  17.                 //NetworkCredential mycred = new NetworkCredential(struser, strpassword);
    & @  a# y, A# `$ @
  18.                 //myWebClient.Credentials = mycred;
    ; w# C8 d6 {! g; m; }
  19.                 //从资源下载数据并返回字节数组。(加@是因为网址中间有"/"符号)
    9 @: j- w  D% F5 {' Z; X( T" k
  20.                 byte[] myDataBuffer = myWebClient.DownloadData(url);
    7 v# D! `' H' P
  21.                 strWebData = Encoding.Default.GetString(myDataBuffer);
    2 B7 _& ^5 G) T( D! {
  22. 7 D" Z. [) o( w! B- F
  23.                 //获取网页字符编码描述信息 : c4 i; b5 x* r& r9 k: _
  24.                 Match charSetMatch = Regex.Match(strWebData, "<meta([^<]*)charset=([^<]*)"", RegexOptions.IgnoreCase | RegexOptions.Multiline);
    % S3 F. c: ?& Z
  25.                 string webCharSet = charSetMatch.Groups[2].Value;
    " J9 f- Q$ p* g' y- I; I* c
  26.                 if (charSet == null || charSet == "")
    3 f4 |. F1 M9 d/ S  \
  27.                     charSet = webCharSet;
    2 J: }7 \- V; X, i& J! ~: k
  28.                 if (charSet.Length > 0)' O7 k! s; w& i+ ^5 a
  29.                 {+ i3 Z7 s' S" I1 d. p( r+ b
  30.                     charSet = charSet.Replace(""", "");
    5 L1 R, N2 u3 T9 t! x
  31.                 }
    2 d( Z; [' d+ W7 _6 l
  32.                 if (UseUTF8CharSet)$ R8 p* d3 y2 a. Y# x( c, w- d- d, m
  33.                 {8 ^3 T* f/ z; [9 x  W
  34.                     if (charSet == null || charSet.Length == 0)2 p! V; R2 G$ b! d
  35.                     {
    & A3 B% V2 i* L. s, u. h9 v, Y1 Q
  36.                         charSet = "utf-8";% C$ O& G  n! {' g% f9 T* I( M
  37.                     }
    ! f) Z7 g* ~+ V2 m* _6 }# r$ M: s* [
  38.                 }
    8 w9 r: Q0 {5 Z) l# S( c; G
  39.                 if (charSet != null && charSet != "" && Encoding.GetEncoding(charSet) != Encoding.Default)
    4 l( R  d- `5 J8 K: n, }
  40.                     strWebData = Encoding.GetEncoding(charSet).GetString(myDataBuffer);
    ; h# R9 s0 `' X5 T( A2 z9 S5 G
  41. - v, r2 A6 Y% C
  42.             }
    % q+ J; u8 T! l  w0 Y
  43.             catch (Exception)/ u5 h3 a  K- }5 g4 S# [! ]
  44.             {' G- ~( x3 [2 l, B5 F# }
  45.                 strWebData = "error";
    , [: t- P7 `; @, T
  46.             }1 j. G6 X" y3 e5 e) H

  47. : k+ O) k; g' C; b+ `8 N
  48.             return strWebData;
    ! `, K) w0 h/ u
  49.         }
复制代码
2 i0 Z0 M' O: g6 e; u' X! D
1 A, F. C- I6 I9 `6 ~
回复 支持 反对

使用道具 举报

0

主题

0

广告币

13

积分

新手上路

Rank: 1

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-29 22:25 , Processed in 0.052192 second(s), 16 queries , Gzip On, MemCache On.

Copyright © 2001-2023, AdvertCN

Proudly Operating in Hong Kong.

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