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加白老户PTM虚拟卡[全新卡BIN+高返点]FB虚拟卡⚡️消费越多返现越多最大欧洲Nutra网盟BA找量
FB个号1块一个TikTok2审户/老户/国内外端口/加白SX.ORG 高质量代理⚡235+ 地区GG,FB,TK, 欧美源头, 欢迎合作❤️
跨境债务催收/风险代理高权重Google老户[卖户+筛户等级] 海外斗篷・智能广告过审率高达 99%DataImpulse⚡️纯净住宅代理仅 $1
FB企业户海外户,授信户,TK加白户广告位出租8500万高质量住宅IP,助力各种需求虚拟卡返佣1%,国内持牌机构
查看: 9946|回复: 7

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

[复制链接]

36

主题

210

广告币

294

积分

初级会员

Rank: 2

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

使用道具 举报

2

主题

1475

广告币

1818

积分

高级会员

Rank: 4

积分
1818

社区QQ达人

发表于 2016-2-26 16:17:11 | 显示全部楼层
  1. #region 抓取全站链接& [  r7 \6 k3 a8 G/ R) Y
  2.         public static List<string> GetAllHref(string url)$ O: B3 ]5 ]7 J* R" {! i0 a+ Y$ Q
  3.         {
    : d4 T) o1 H( Y
  4.             List<string> allHref = new List<string>();
    6 _! m# U3 ~1 D* t
  5.             try
    / w* r3 l0 C9 l1 ^& t0 F, ?! `" m
  6.             {/ D3 |8 V0 s" N* M# |& \( [
  7.                 string strhtml = soso.getHtml(url, "", true);
    , Y. C# O; N4 h$ x: F7 Y) h0 _3 B: l. c$ o
  8.                 if (strhtml != "error")
    4 a/ w; O  e3 g" b. [
  9.                 {
      Z" j) T3 \  K  y" s* d
  10.                     Regex reg = new Regex(@"(?is)<a[^>]*?href=(['""]?)(?<url>[^'""\s>]+)\1[^>]*>(?<text>(?:(?!</?a\b).)*)</a>");
    7 u+ K. h- p% e
  11.                     MatchCollection mc = reg.Matches(strhtml);7 z# o' N  f( E/ P1 Z  T3 ?6 y( ^8 D
  12.                     foreach (Match m in mc)
    $ M+ X7 `1 K. V3 \
  13.                     {
    : K$ V4 Y3 N! ]* r" Y8 R
  14.                         Uri uri = new Uri(url);# |7 r' P- B4 f  i* f# P
  15.                         Uri thisUri = new Uri(uri, m.Groups["url"].Value);: m+ z/ g2 d3 I* }
  16.                         string fullUrl = "";2 d7 c$ \9 s* q6 z. w# b( y2 z1 G
  17.                         if (m.Groups["url"].Value.StartsWith("http"))
    5 m, F  s7 g4 n
  18.                         {* D! j$ s  ?  X0 M) l) d
  19.                             fullUrl = m.Groups["url"].Value;
    . t0 S) {+ Q# e4 T: q/ P: N
  20.                         }% b# q9 `) b2 t# e
  21.                         else
    & R) E/ L- \; v  T# V9 q* R
  22.                         {
    ( w6 h& h2 ~+ c% s7 B0 y/ L
  23.                             fullUrl = thisUri.ToString();. ~- r$ ^% _, u' A9 \* l/ R: Q  s9 x
  24.                         }  P% G" x; l* k: C: ~1 \( Y
  25.                         allHref.Add(fullUrl);% s( I( u, c1 S7 j9 X6 @
  26.                         //Console.WriteLine("原链接:" + m.Groups["url"].Value);
    1 a, }( P4 h1 F/ E
  27.                         //Console.WriteLine("文本标记:" + m.Groups["text"].Value);
    % B; `0 D8 L2 B, M5 U1 S" t, C/ q
  28.                         //Console.WriteLine("补全链接:" + fullUrl);3 q/ n( M1 I% T/ j/ ~
  29.                         //Console.WriteLine("…………………………………………");. e7 T: l: C8 A! l
  30.                     }
    + ]+ M3 [, M8 |
  31.                 }
    ! c, q1 U( h( x  }7 M) B
  32.             }4 N9 {8 l7 [0 v1 K
  33.             catch (Exception ex)
    & ]3 V& `! X$ \. C. U* r2 J
  34.             { }
    1 s' j1 E. L* |# H- S) p
  35.             return allHref;; _# A! D; Y9 F9 d/ M( g, K9 A
  36.         }' `8 Y% L8 a/ t# _2 y. c) u
  37.         #endregion
复制代码
5 }- r$ V2 {5 x9 i) N9 |4 G

; @- P! O. p3 [" N* q) C
  1. / L2 x) [' b1 S3 }8 |6 z

  2. 4 f6 k- Y" u" N2 T. ~$ W" z

  3. ! s7 }# Y9 R1 h7 V$ d+ T
  4. #region 数据去重
    4 E) a$ e) R) t  C0 M& H5 K! _, }
  5.         /// <summary>% ?' M5 b, V' p$ v3 b
  6.         /// List<string>去重
    5 E- Q. T) U+ z8 A
  7.         /// </summary>2 I8 K. M/ A# ?6 I, y
  8.         /// <param name="list"></param>$ _: c1 K& O$ T+ X. R
  9.         /// <returns></returns>
    ) \' J. a/ l, _3 e3 D* q/ H! I7 R; p* ?
  10.         public static List<string> getUnqueList(List<string> list)
    ; C% d; O% Z, |0 \# j) }
  11.         {
    , b0 [) h5 Z2 l3 m+ Y2 ?5 l0 Z
  12.             List<string> list1 = new List<string>();/ b$ G  c4 x( |  f3 W; {
  13.             Hashtable hash = new Hashtable();) a; m7 Y, C; L! Y- P+ B
  14.             foreach (string s in list)3 q5 ~* M( K! A* Y
  15.             {5 K6 C9 |* E! d: B& u, d5 k
  16.                 if (!hash.ContainsKey(s))
    ) P7 n# Z/ Q' W  P0 v
  17.                 {
    ( B6 s8 I8 q% p3 \) L
  18.                     hash.Add(s, s);& C! S& ?) g1 P+ C
  19.                     list1.Add(s);
    ; `0 z$ p& Z6 a  \6 E/ M( @
  20.                 }
    7 H0 g! C0 G4 d1 W; |
  21.             }3 c3 M( p( L  w% s8 A9 ]
  22.             hash.Clear();
      g! P1 ^$ h4 M4 D& {! y
  23.             hash = null;( d5 Y! e. w) W% `' _
  24.             return list1;5 r. k+ M( |5 ]" @$ J
  25.         }1 m) J: B! Y3 t- T8 O5 ?. F4 P1 M
  26.         #endregion
复制代码
& n, f/ {: k, j- L, I  L& i0 l: D

% g/ W3 B1 O- y4 I" M1 N3 A% y

点评

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

使用道具 举报

36

主题

210

广告币

294

积分

初级会员

Rank: 2

积分
294
 楼主| 发表于 2016-2-26 16:20:16 | 显示全部楼层
' r2 h+ G. E: u" p
十分感谢!!!非常感谢!!

点评

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

使用道具 举报

2

主题

1475

广告币

1818

积分

高级会员

Rank: 4

积分
1818

社区QQ达人

发表于 2016-2-26 16:23:12 | 显示全部楼层
guys 发表于 2016-2-26 16:20# i; X; g/ o* ]% a1 d9 c8 Z
十分感谢!!!非常感谢!!

5 ~0 Y, w- ~- x  ?缺少一个gethtml,用下面这个:
: W. A' A& }# ~* }# R1 x; c
  1.      public string getHtml(string url, string charSet, bool UseUTF8CharSet)//url是要访问的网站地址,charSet是目标网页的编码,如果传入的是null或者"",那就自动分析网页的编码
    8 \+ H+ x& n0 m0 w- E8 Z
  2.         {
    5 E& s' s& \; \# e# ~+ m
  3.             string strWebData = "error";- j  v& M  T7 \2 d5 v
  4.             try& K; U+ c' m: L
  5.             {
    . }* r* {! e) a9 m% ]* g
  6.                 WebClient myWebClient = new WebClient(); //创建WebClient实例myWebClient ; }* [8 x. c- ]. o6 @2 l
  7.                 // 需要注意的: ( e) a& F' E4 K* S; X, T
  8.                 //有的网页可能下不下来,有种种原因比如需要cookie,编码问题等等
    - r5 v9 V7 w( a. u3 n4 @7 `
  9.                 //这是就要具体问题具体分析比如在头部加入cookie
    7 `4 V1 V/ e" O6 D7 f- x
  10.                 // webclient.Headers.Add("Cookie", cookie);
    9 Y* G1 q# V) U$ |* r- G- O
  11.                 //这样可能需要一些重载方法。根据需要写就可以了
    + n: t+ R" L0 E  v: ?6 S
  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)");
    6 U% u* f" a! C& F; D& P
  13.                 //myWebClient.Headers.Add("User-agent", "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)");
    4 U) q& m: f- f+ ?8 L
  14.                 //获取或设置用于对向 Internet 资源的请求进行身份验证的网络凭据。 3 Y/ n! n$ h$ g" P5 h1 R. x; b! V
  15.                 myWebClient.Credentials = CredentialCache.DefaultCredentials;
    , b! u5 e: Z- o" X
  16.                 //如果服务器要验证用户名,密码
    5 }" G* {9 N" t% n
  17.                 //NetworkCredential mycred = new NetworkCredential(struser, strpassword); $ o5 j% A6 d$ P+ S# R! \7 L2 `7 I
  18.                 //myWebClient.Credentials = mycred; & t& \1 e6 G- ]2 {& v8 C
  19.                 //从资源下载数据并返回字节数组。(加@是因为网址中间有"/"符号)
    4 I% b& D7 a/ }8 R  l7 ~: I- O
  20.                 byte[] myDataBuffer = myWebClient.DownloadData(url);+ }7 p+ Y, v$ f6 C
  21.                 strWebData = Encoding.Default.GetString(myDataBuffer);
    . C6 Q" C4 l1 \, T3 Y* |
  22. , G6 I4 J# S$ q( O+ H9 @7 I  k9 j
  23.                 //获取网页字符编码描述信息
    6 @* ^1 b  F+ R$ C* {' z) K
  24.                 Match charSetMatch = Regex.Match(strWebData, "<meta([^<]*)charset=([^<]*)"", RegexOptions.IgnoreCase | RegexOptions.Multiline);8 Z7 o$ o6 V* G, r+ p4 `( G
  25.                 string webCharSet = charSetMatch.Groups[2].Value;3 l0 ^7 h2 _$ U" p3 f4 S
  26.                 if (charSet == null || charSet == "")3 j) I/ Z* Q( ~  z
  27.                     charSet = webCharSet;
    / g/ h8 s- O3 j2 R" r
  28.                 if (charSet.Length > 0)  _3 v8 S- B& t
  29.                 {
    # f0 b0 T, w! M5 `$ l$ z
  30.                     charSet = charSet.Replace(""", "");
    9 p# x8 ]" ^) o/ a8 h, q
  31.                 }& n, j% r4 y; b6 V
  32.                 if (UseUTF8CharSet)
    ! ^( Y+ h1 I/ j
  33.                 {! {# u) s8 g* m) q
  34.                     if (charSet == null || charSet.Length == 0)
    $ ]' W$ X7 g, p4 F/ A) g; y
  35.                     {8 h8 u2 E) y7 n7 i9 D( D! b, ~
  36.                         charSet = "utf-8";. }3 ^+ E& X; d; M; Z, V
  37.                     }
    " u5 I# E0 C/ D$ Q% p
  38.                 }
    + i2 m6 z  Q% v
  39.                 if (charSet != null && charSet != "" && Encoding.GetEncoding(charSet) != Encoding.Default)
    % c' Z4 R" n7 q' I9 \# f3 Z4 E
  40.                     strWebData = Encoding.GetEncoding(charSet).GetString(myDataBuffer);
    + a3 M/ q; p+ K' b: Z) c

  41. 7 i* J  ]4 T- L% d
  42.             }
      k" y$ w# a2 d" Q8 M
  43.             catch (Exception)
    3 H' J7 x# R7 z1 m* b4 M
  44.             {+ L8 h. e* u4 @) _* p- n9 O. Y
  45.                 strWebData = "error";
    ' [. B1 l2 ^# F8 ~
  46.             }
    - R7 G. o* D* K' U& N9 S2 U) F0 ?
  47. $ r* w3 L* w* G, x3 z1 b
  48.             return strWebData;
    ; P* H; b1 q. ?, ~
  49.         }
复制代码

- h" K2 i  q5 ^- M' h9 z
/ w1 p/ k  g9 y
回复 支持 反对

使用道具 举报

0

主题

0

广告币

13

积分

新手上路

Rank: 1

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-10 12:47 , Processed in 0.054726 second(s), 16 queries , Gzip On, MemCache On.

Copyright © 2001-2023, AdvertCN

Proudly Operating in Hong Kong.

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