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%,国内持牌机构   
查看: 9999|回复: 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 抓取全站链接2 N' [& J4 C& g
  2.         public static List<string> GetAllHref(string url)
    ! u6 [4 w$ X1 x. l
  3.         {
    . ?% [3 ^2 g8 n0 w" t# p  T
  4.             List<string> allHref = new List<string>();
    1 z+ R' F3 L6 m; U5 L3 L' i9 ~
  5.             try4 C2 N! D2 J' H" `: O0 R
  6.             {
      D3 p0 v# t9 f% ~, a3 u
  7.                 string strhtml = soso.getHtml(url, "", true);5 P: M7 X! i/ w8 V* w- x: p! g/ j$ n, t
  8.                 if (strhtml != "error")
    & [8 M' _4 c; j9 n* X2 w7 I& s' ?
  9.                 {* @; _* e1 V  U' U% |
  10.                     Regex reg = new Regex(@"(?is)<a[^>]*?href=(['""]?)(?<url>[^'""\s>]+)\1[^>]*>(?<text>(?:(?!</?a\b).)*)</a>");
    / t+ P9 B9 _$ l* g6 ?
  11.                     MatchCollection mc = reg.Matches(strhtml);7 s! h; L" y" e0 v: x$ l3 {
  12.                     foreach (Match m in mc)
    * e. l' S8 u; r; K" x$ {
  13.                     {, r& A( ]8 ^% a/ c& J& j3 n4 q
  14.                         Uri uri = new Uri(url);
    ' n+ b* H- X/ a, T
  15.                         Uri thisUri = new Uri(uri, m.Groups["url"].Value);
    $ z4 L: o! `4 [& F  @. U( x
  16.                         string fullUrl = "";
    , [8 O7 ?9 w) j, R4 A: I
  17.                         if (m.Groups["url"].Value.StartsWith("http"))
    6 ~7 r! Z" K% l; G- `4 z* Z5 J: v
  18.                         {8 ^3 m6 M* v6 `0 B' O' g4 O
  19.                             fullUrl = m.Groups["url"].Value;
    , \8 G/ J; N4 F; ]
  20.                         }5 g# L& o7 F  n, H
  21.                         else5 s* N: o9 L% h. Z3 {# A, J
  22.                         {1 h' H/ {/ O! ~+ K% [/ B8 _" W! n1 {
  23.                             fullUrl = thisUri.ToString();; T3 |% Y; e+ y, ^2 d' {- t% y, N$ n
  24.                         }7 \6 Z. y1 Y/ h
  25.                         allHref.Add(fullUrl);; V) V' {5 |" p, k  i# w
  26.                         //Console.WriteLine("原链接:" + m.Groups["url"].Value);
    4 ]3 M6 ?% Y: \0 j) G" v
  27.                         //Console.WriteLine("文本标记:" + m.Groups["text"].Value);3 a9 Y1 T( v- `* u  V+ U8 N
  28.                         //Console.WriteLine("补全链接:" + fullUrl);
    " S7 J" k. E4 s
  29.                         //Console.WriteLine("…………………………………………");9 a/ k1 E# a) g- |
  30.                     }% l" n' A" ?% y, i
  31.                 }
    ( A, P6 I  E) S3 A# t6 i# D+ P- z
  32.             }4 E+ L: T" t* W( ~" j5 ]# P
  33.             catch (Exception ex)
    & C* {# ~5 I  c8 j8 C/ \" p
  34.             { }/ e% M' O6 j# ]9 R5 y
  35.             return allHref;, M& z8 V: s4 Q
  36.         }
      Y( M3 v" W9 H$ _
  37.         #endregion
复制代码
6 J% }5 p( X; J
% v' |1 ?1 O! U; V. ~1 ]& Z1 c
  1. ' L' U0 B" q2 T2 p/ X; D
  2.   t5 I) l$ b8 j

  3. + u1 P# r6 @. Y0 \1 i( F9 H" ^
  4. #region 数据去重' a: P: k  k% `1 w- ]6 W
  5.         /// <summary>& N3 M# b) x/ w1 q, H- B
  6.         /// List<string>去重
    # Z& z* f5 m9 G- n! V
  7.         /// </summary>$ n. V( a0 E" u1 U
  8.         /// <param name="list"></param>
    / r* H: \& [3 M; I: {
  9.         /// <returns></returns>
    + s; h; f# T) f. R3 b8 o: @0 {& A
  10.         public static List<string> getUnqueList(List<string> list): g  C/ M+ I+ K6 N" @
  11.         {
    7 j8 r: N1 R+ u$ B
  12.             List<string> list1 = new List<string>();
    " E, S' L8 z7 z* {2 [2 |( ~: s
  13.             Hashtable hash = new Hashtable();0 T! \, k/ V+ q2 T* o/ @* c
  14.             foreach (string s in list)( _0 ^  o. ?% ~: m5 \4 P
  15.             {
    * J$ x) b; g# P0 m2 U
  16.                 if (!hash.ContainsKey(s))
    , n- ~" H" G: f- p6 r
  17.                 {
    1 m$ D, o5 F5 |7 x6 z) `
  18.                     hash.Add(s, s);
    % t/ C% {& {/ Y) S% \, {
  19.                     list1.Add(s);
    $ m2 @% r+ T$ I$ t' D
  20.                 }
    ; J" Q: @- ~1 Z6 L8 D1 B$ K
  21.             }8 V' L+ d8 w) k: ^! z& ]
  22.             hash.Clear();, j7 k6 ~1 E8 M- y  x3 k" C7 v8 Y
  23.             hash = null;3 l5 H8 F/ B! ?, d
  24.             return list1;
    9 Y' }6 }1 Y4 C/ H, R
  25.         }$ Y) z6 x- W; p0 M" n1 s
  26.         #endregion
复制代码
4 x3 g* ]6 w- c
# y7 J" x0 _8 s! W9 |: q

点评

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

使用道具 举报

36

主题

210

广告币

294

积分

初级会员

Rank: 2

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

3 v3 n# i3 k0 X( F十分感谢!!!非常感谢!!

点评

缺少一个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$ v2 y( P( D$ d! D, \6 n# w9 L6 B
十分感谢!!!非常感谢!!

, q# v' d9 h; l$ m, C  N缺少一个gethtml,用下面这个:
7 n2 X  J" w7 s) ~
  1.      public string getHtml(string url, string charSet, bool UseUTF8CharSet)//url是要访问的网站地址,charSet是目标网页的编码,如果传入的是null或者"",那就自动分析网页的编码 # r; H+ f4 e! {, F
  2.         {
    . H4 N1 Y7 Q  Q  q
  3.             string strWebData = "error";
    - y- o6 _" i7 R; M$ s/ V
  4.             try
    8 |/ t( I3 k8 {: `; F* {
  5.             {( W% t. ]- V3 p' W- V% H# k
  6.                 WebClient myWebClient = new WebClient(); //创建WebClient实例myWebClient
    4 A  f; Q' e5 s+ H7 X' J, r
  7.                 // 需要注意的: . @: _0 G- l: j- N
  8.                 //有的网页可能下不下来,有种种原因比如需要cookie,编码问题等等 ) y5 E! h/ W! K9 |/ T# H
  9.                 //这是就要具体问题具体分析比如在头部加入cookie
    8 P6 {  V8 g$ `8 B- V/ V
  10.                 // webclient.Headers.Add("Cookie", cookie); + `0 R& ~* E8 K6 s+ @; ]
  11.                 //这样可能需要一些重载方法。根据需要写就可以了
    + R! B6 Y5 |1 T2 `+ \1 j& U
  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)");( M5 ]2 B( C! l6 [& G$ i
  13.                 //myWebClient.Headers.Add("User-agent", "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)");7 @! l" Z* G& i7 m& e! l  u
  14.                 //获取或设置用于对向 Internet 资源的请求进行身份验证的网络凭据。
    - P: Q/ F) D/ _' b4 U% y; J
  15.                 myWebClient.Credentials = CredentialCache.DefaultCredentials;
    : I) U7 d, U8 f0 l8 T
  16.                 //如果服务器要验证用户名,密码 2 q# x' `. V( g8 E. @
  17.                 //NetworkCredential mycred = new NetworkCredential(struser, strpassword);
    ( X. e3 d$ B# s& J: F6 Z' V2 k6 d
  18.                 //myWebClient.Credentials = mycred; - e; ?( d3 h* L. {- n
  19.                 //从资源下载数据并返回字节数组。(加@是因为网址中间有"/"符号) % @3 F4 _/ f5 g6 f/ ^$ r
  20.                 byte[] myDataBuffer = myWebClient.DownloadData(url);0 V4 ~1 j9 X( I8 @+ G: `  P4 C5 l
  21.                 strWebData = Encoding.Default.GetString(myDataBuffer);
    - `8 C3 n6 v& d/ c) _0 q% ?7 a8 k- t

  22. 3 y/ ^; t+ Q- }3 ?% }0 q$ b
  23.                 //获取网页字符编码描述信息
    ) h  s: p5 P& X: Q. l+ G
  24.                 Match charSetMatch = Regex.Match(strWebData, "<meta([^<]*)charset=([^<]*)"", RegexOptions.IgnoreCase | RegexOptions.Multiline);
    9 X+ u% [* k5 d: i/ @
  25.                 string webCharSet = charSetMatch.Groups[2].Value;
    ! W$ _8 p. e/ L5 b- \4 T. \4 @  w
  26.                 if (charSet == null || charSet == "")' {! h; w& m9 o2 `
  27.                     charSet = webCharSet;
    " F3 D, d* u6 n* u- c. G  ~7 F
  28.                 if (charSet.Length > 0)
    9 j1 }) w- `& d! M. I, V
  29.                 {
    ' w3 u2 c" @0 E+ o& k
  30.                     charSet = charSet.Replace(""", "");* C, F, I3 i: O$ ^% Y# ~; B1 W& j
  31.                 }
    ! ~% h$ t% \) C
  32.                 if (UseUTF8CharSet)
    5 h$ @* e* }$ r: r3 a
  33.                 {
    $ R  X7 e# `- I3 E0 \  T
  34.                     if (charSet == null || charSet.Length == 0)* |' Z7 }7 g7 [0 Y. X
  35.                     {
    8 ]5 ~* ?! D: G9 n4 u
  36.                         charSet = "utf-8";
    ! p: Y+ A) Q. _% H- J( e
  37.                     }, ~3 V; ~$ u% L2 W; i/ b
  38.                 }. q" ]; {9 g, E5 m$ L( @- D4 Z2 ?
  39.                 if (charSet != null && charSet != "" && Encoding.GetEncoding(charSet) != Encoding.Default)
    7 @3 d) V7 Q: T; S
  40.                     strWebData = Encoding.GetEncoding(charSet).GetString(myDataBuffer);$ M! J0 r6 C% ]& V; d9 d7 Q% r) R

  41. . f1 m$ }5 C6 ^# R
  42.             }7 e5 T( o" }; k5 Q
  43.             catch (Exception)% i. _' \) r0 j, M" i0 Z* X
  44.             {1 ~& Y- N; z8 t, F
  45.                 strWebData = "error";
    , p( o9 P9 {9 F/ X
  46.             }
    + A1 Z/ x& G1 Q: N0 T$ X
  47. $ ^; J4 N* z0 t2 ~3 s
  48.             return strWebData;& R8 M8 f+ s2 Z5 Z3 u$ {6 o& I
  49.         }
复制代码

+ n- ^1 o9 `# ?* ]+ X/ T
8 I/ u0 E* L4 T/ y
回复 支持 反对

使用道具 举报

0

主题

0

广告币

13

积分

新手上路

Rank: 1

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-29 10:01 , Processed in 0.060638 second(s), 21 queries , Gzip On, MemCache On.

Copyright © 2001-2023, AdvertCN

Proudly Operating in Hong Kong.

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