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 虚拟卡⚡️FB BM不限额,短id账单户
BINOM TRACKER 60% OFF!比Adplexity还好用的Spy工具ADPLEXITY + ADVERTCN7200W全球动态不重复住宅IP代理
虚拟信用卡+独立站收款全球虚拟卡, 支持U充值各种主页、账单户、BM户(优势)⚡️TikTok企业户,bm户,账单户
IPCola原生住宅IP⚡️$1.8/条双ISP提供TK企业新户老户、谷歌新户老户海外CL企业户源头PTM虚拟卡[全新卡BIN+高返点]
FB虚拟卡⚡️消费越多返现越多最大欧洲Nutra网盟BA找量 FB个号1块一个寻找顶级电商?AdsBranded等你!
TK老户/国内外端口/预审/加白SX.ORG 高质量代理⚡235+ 地区GG,FB,TK, 欧美源头, 欢迎合作广告位出租
8500万高质量住宅IP,助力各种需求虚拟卡返佣1%,国内持牌机构  
查看: 9737|回复: 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 抓取全站链接
    . p& e0 A/ l; P3 |& n& {7 J. ?  |
  2.         public static List<string> GetAllHref(string url)
    * L7 F; D4 b- C0 d. m9 j
  3.         {
      V  u' }. \8 B: I
  4.             List<string> allHref = new List<string>();
    0 d, t6 C- z4 L6 Y0 Y% l1 |: G
  5.             try
    / }' r( J. H( F1 G
  6.             {0 T  N/ ]4 Y! A* _' t  p0 r$ e
  7.                 string strhtml = soso.getHtml(url, "", true);8 f# f  Y7 K* I- V7 [, K: V0 {
  8.                 if (strhtml != "error")2 s3 U, s" C, E& q9 C+ Y* i- p! ^
  9.                 {
    ; Q) l6 U& v# }, ]6 W# y8 l
  10.                     Regex reg = new Regex(@"(?is)<a[^>]*?href=(['""]?)(?<url>[^'""\s>]+)\1[^>]*>(?<text>(?:(?!</?a\b).)*)</a>");0 V& O7 }( F8 U/ N+ P" j
  11.                     MatchCollection mc = reg.Matches(strhtml);! y5 m. l8 M6 A5 m( d
  12.                     foreach (Match m in mc)5 _2 k) b- _  X. t  O6 G
  13.                     {9 q% \* s, z! y
  14.                         Uri uri = new Uri(url);( a) X5 X6 J6 D: B. h5 B  {
  15.                         Uri thisUri = new Uri(uri, m.Groups["url"].Value);
      y8 g* Q! n' O' z! ~3 X+ n
  16.                         string fullUrl = "";
    / m0 s8 e- `! J2 X8 `; Z" {2 n) r
  17.                         if (m.Groups["url"].Value.StartsWith("http"))
    ( C8 i+ f) x& b  d* s1 g* p
  18.                         {9 K8 B% e0 V& ?( K
  19.                             fullUrl = m.Groups["url"].Value;
    # q3 |: b% w7 o9 r7 N0 I/ V
  20.                         }
    ; ?; F. v% c5 u' [
  21.                         else
    ) v2 j% N& h! F, X' `' u
  22.                         {
    8 b: X1 I6 _0 u% I& N, t  i9 `1 m# s8 r
  23.                             fullUrl = thisUri.ToString();* j  T) j8 z0 m5 S$ ^% S+ E
  24.                         }
    1 J7 Z8 {( w/ a$ m5 z+ Y; H$ N
  25.                         allHref.Add(fullUrl);8 F- E/ G2 F. J. `0 [0 M3 C
  26.                         //Console.WriteLine("原链接:" + m.Groups["url"].Value);* ]2 `2 d" ?0 E, M6 E' m1 v
  27.                         //Console.WriteLine("文本标记:" + m.Groups["text"].Value);4 W2 E9 l- F: W- a5 r! M. i, c0 A
  28.                         //Console.WriteLine("补全链接:" + fullUrl);  l' H6 l1 h' C- s/ h
  29.                         //Console.WriteLine("…………………………………………");
    : L6 m" E+ o. Y" t9 |' J
  30.                     }
    9 O5 }8 z) ]+ g. _' K7 F# U
  31.                 }2 b8 ^9 g/ M% s/ t
  32.             }8 d  D  e" c5 ]! Y
  33.             catch (Exception ex)
    2 o8 u( M0 k6 q& _8 }1 V; X' X* g6 E
  34.             { }
    2 |( S5 g6 P) a! f( H0 ]% V
  35.             return allHref;
    4 l0 u. {6 O5 r
  36.         }
    1 V* H* c: `8 V: [0 k6 \
  37.         #endregion
复制代码

/ D4 ^. b6 z! B8 A1 b, o7 \/ q8 w( p; d4 I; Y0 F1 o
  1. 3 b& L6 q2 d2 I
  2. - v* E1 |# w: G' E. W8 O$ M

  3. 6 Y: \5 |& P+ ~; @+ R* i
  4. #region 数据去重, C1 T; B! z2 m6 x8 r$ f
  5.         /// <summary>- C1 j/ }7 B8 i
  6.         /// List<string>去重
    8 `4 O* f$ j% s0 T5 Z0 R
  7.         /// </summary>& V! H) L  \4 B. K+ g; W: {
  8.         /// <param name="list"></param>9 w  y/ N/ `; y+ l, r
  9.         /// <returns></returns>3 Y% a- `4 Z" o( C. R# b6 {
  10.         public static List<string> getUnqueList(List<string> list)$ @2 G  g& N' M9 f( X4 w% _, g( o$ J
  11.         {
    - I. H4 D+ C8 E+ Z7 t1 p
  12.             List<string> list1 = new List<string>();4 ~9 ~% u* G. Y/ o3 M
  13.             Hashtable hash = new Hashtable();# @1 g7 |! F' r  M4 f
  14.             foreach (string s in list)
    , h& k9 F% j( `: W5 a
  15.             {
    8 ^! y' D4 W3 }4 [  w
  16.                 if (!hash.ContainsKey(s)). o8 v' P4 Y7 [
  17.                 {
    & ~# l; E% f( v% r: d( V8 d
  18.                     hash.Add(s, s);
    4 y* Q8 l% Z. X$ T& P% E
  19.                     list1.Add(s);+ `2 V- Z+ W% e* l3 C0 z
  20.                 }% Q6 S8 ?8 Z# P" v, W# _
  21.             }. C5 o3 U( p) ~1 J. @) s( O
  22.             hash.Clear();
    # Q( }/ P( N' ]8 c  j2 a* t
  23.             hash = null;) G6 ]: ]0 X: I' z+ u5 L* E# i
  24.             return list1;
    8 `# ]( X+ z* F; U+ ^3 n) ~
  25.         }
      A- C8 Q' m' C
  26.         #endregion
复制代码

) D% w8 I( [. W* P5 t% I: A/ n! ^3 u4 P: }; \* U4 j0 @

点评

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

使用道具 举报

36

主题

210

广告币

294

积分

初级会员

Rank: 2

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

7 D3 J$ E" P: |* l5 s( X十分感谢!!!非常感谢!!

点评

缺少一个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
  S3 ^8 o9 L+ L* M. D十分感谢!!!非常感谢!!

0 R- k% J8 D* L- l缺少一个gethtml,用下面这个:
; l* D9 O+ j' L7 n
  1.      public string getHtml(string url, string charSet, bool UseUTF8CharSet)//url是要访问的网站地址,charSet是目标网页的编码,如果传入的是null或者"",那就自动分析网页的编码 4 i9 c8 ?( W/ t( S5 m. o# g4 z
  2.         {  T  x0 t% U0 c( R/ g
  3.             string strWebData = "error";
    # P& ~5 k2 M* C/ a
  4.             try
    % V  f- Z+ o( O; k
  5.             {" N& T( m! `. j3 Z% s  A
  6.                 WebClient myWebClient = new WebClient(); //创建WebClient实例myWebClient - `& `7 `5 G3 \7 S- u3 C. A8 J
  7.                 // 需要注意的:
    ! `8 M8 s' U1 b- ~1 l
  8.                 //有的网页可能下不下来,有种种原因比如需要cookie,编码问题等等 : y4 R9 U& ]4 G" m: C% v
  9.                 //这是就要具体问题具体分析比如在头部加入cookie
      \5 }0 R& K3 k& E
  10.                 // webclient.Headers.Add("Cookie", cookie); " P/ U8 F. z# [) R5 \
  11.                 //这样可能需要一些重载方法。根据需要写就可以了1 O4 f5 J, ~. Q, d2 j5 P+ T9 Z' B
  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)");
    + m. n; ^0 z, [) C8 G/ I8 X- U- O* u
  13.                 //myWebClient.Headers.Add("User-agent", "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)");
    7 G  O% }4 a! u  a5 v
  14.                 //获取或设置用于对向 Internet 资源的请求进行身份验证的网络凭据。
    8 A0 g" c9 j9 w4 Q3 m
  15.                 myWebClient.Credentials = CredentialCache.DefaultCredentials;/ A/ _' b# l% o* t
  16.                 //如果服务器要验证用户名,密码
    0 R' f6 k* G7 j: L% _
  17.                 //NetworkCredential mycred = new NetworkCredential(struser, strpassword);
    " g5 z- ~0 ]7 c3 C
  18.                 //myWebClient.Credentials = mycred;
    ) b; x* g  X0 P' D; s0 b4 `6 p1 o
  19.                 //从资源下载数据并返回字节数组。(加@是因为网址中间有"/"符号)
    8 _9 |* Y% O0 `
  20.                 byte[] myDataBuffer = myWebClient.DownloadData(url);
    , T! I) r0 p/ \* m1 [, r, Y  |
  21.                 strWebData = Encoding.Default.GetString(myDataBuffer);8 v9 |3 Z  d) F) \4 |

  22. ; [  V0 n9 c0 ~9 D- F  e& [% g' T. F6 r  o
  23.                 //获取网页字符编码描述信息 0 J- W! C' u& l: ]1 l$ ^
  24.                 Match charSetMatch = Regex.Match(strWebData, "<meta([^<]*)charset=([^<]*)"", RegexOptions.IgnoreCase | RegexOptions.Multiline);8 D3 d, B  i4 w# B+ I. F* m
  25.                 string webCharSet = charSetMatch.Groups[2].Value;$ ^' ~0 h) s+ K
  26.                 if (charSet == null || charSet == "")
    & P4 A- O2 q+ C! A
  27.                     charSet = webCharSet;
    # Y3 z6 F( w9 Q6 q* T: `& p# z
  28.                 if (charSet.Length > 0)
    / P1 l# m7 y5 h4 O- ~  F
  29.                 {
    2 p$ Q& ~; }% M6 d1 `$ D1 u8 ~
  30.                     charSet = charSet.Replace(""", "");* u" c+ [; |! w0 x5 I' j
  31.                 }5 r5 O8 W7 _6 U% x2 }$ l1 W
  32.                 if (UseUTF8CharSet)
    + `, u8 |1 r- p5 A2 m+ A
  33.                 {  Z; p1 G9 C" t* `: c
  34.                     if (charSet == null || charSet.Length == 0). K+ G) ~) A( {9 b
  35.                     {6 w- o) M: J  Z3 g2 P1 W
  36.                         charSet = "utf-8";
    : z: x# B& n1 i3 t
  37.                     }
    ) N5 ^3 B+ |2 p: d7 b: Q
  38.                 }
    0 B0 J) F1 ]. @9 U% L2 M4 Y
  39.                 if (charSet != null && charSet != "" && Encoding.GetEncoding(charSet) != Encoding.Default)* @2 u9 w' z/ u5 V* w% d# a
  40.                     strWebData = Encoding.GetEncoding(charSet).GetString(myDataBuffer);4 \8 v" M) C- ?6 b; H9 Z8 n

  41. 0 n4 j5 P- X( l6 z1 W, X
  42.             }
    : Y6 K/ A/ L2 w9 o( P8 x4 [& q
  43.             catch (Exception)2 ?  y# o# q' v2 R8 h; M
  44.             {  E0 w# i  w6 y8 f( E
  45.                 strWebData = "error";
    ( Y8 X* @6 c* a$ u' }2 ~# t9 ~& H1 |
  46.             }
    " C5 J# ~& L5 b: _& O1 W. N

  47. 9 c5 k+ J# }, b/ s7 `: x
  48.             return strWebData;! O- y# H) f) @: a. j, B* u
  49.         }
复制代码

& ?2 B! g1 {3 {7 P
( F. n6 L( d3 z3 a$ J; a) x
回复 支持 反对

使用道具 举报

0

主题

0

广告币

13

积分

新手上路

Rank: 1

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-12 20:10 , Processed in 0.052106 second(s), 16 queries , Gzip On, MemCache On.

Copyright © 2001-2023, AdvertCN

Proudly Operating in Hong Kong.

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