2008-11-30 2 views
13

से वेबसाइट शीर्षक कैसे प्राप्त करें मैं अपने पुराने कोड का पुनरीक्षण कर रहा हूं और अपने यूआरएल के आधार पर वेबसाइट का शीर्षक प्राप्त करने के लिए एक विधि पर ठोकर खाई हूं। यह वास्तव में नहीं है कि आप एक स्थिर विधि कहेंगे क्योंकि यह अक्सर परिणाम उत्पन्न करने में विफल रहता है और कभी-कभी गलत परिणाम भी उत्पन्न करता है। साथ ही, कभी-कभी यह शीर्षक से कुछ पात्रों को दिखाने में विफल रहता है क्योंकि वे वैकल्पिक एन्कोडिंग के होते हैं।सी #

क्या किसी के पास इस पुराने संस्करण में सुधार के लिए सुझाव हैं?

public static string SuggestTitle(string url, int timeout) 
{ 
    WebResponse response = null; 
    string line = string.Empty; 

    try 
    { 
     WebRequest request = WebRequest.Create(url); 
     request.Timeout = timeout; 

     response = request.GetResponse(); 
     Stream streamReceive = response.GetResponseStream(); 
     Encoding encoding = System.Text.Encoding.GetEncoding("utf-8"); 
     StreamReader streamRead = new System.IO.StreamReader(streamReceive, encoding); 

     while(streamRead.EndOfStream != true) 
     { 
      line = streamRead.ReadLine(); 
      if (line.Contains("<title>")) 
      { 
       line = line.Split(new char[] { '<', '>' })[2]; 
       break; 
      } 
     } 
    } 
    catch (Exception) { } 
    finally 
    { 
     if (response != null) 
     { 
      response.Close(); 
     } 
    } 

    return line; 
} 

एक अंतिम टिप्पणी - मैं, साथ ही तेजी से चलाने के लिए के रूप में यह पेज तक ब्लॉक कर रहा है के रूप में प्राप्त किए गए किया गया कोड चाहते हैं, इसलिए यदि मैं केवल साइट शीर्षक और नहीं पूरे पृष्ठ मिल सकता है, यह होगा महान हो।

उत्तर

33

सामग्री प्राप्त करने के एक आसान तरीका:

WebClient x = new WebClient(); 
string source = x.DownloadString("http://www.singingeels.com/"); 

एक सरल और अधिक विश्वसनीय शीर्षक प्राप्त करने के लिए जिस तरह से:

string title = Regex.Match(source, @"\<title\b[^>]*\>\s*(?<Title>[\s\S]*?)\</title\>", RegexOptions.IgnoreCase).Groups["Title"].Value; 
+0

क्या वेब क्लाइंट का उपयोग करते समय टाइमआउट सेट करने का कोई तरीका है? –

+0

मुझे लगता है कि जोड़ने के लिए केवल एक चीज यह है कि आपको पैटर्न में भागने के लिए @ (भागने के सामान) को जोड़ना होगा, यह कहना है: @ "\ ] * \> \ s * (? [\ s \ S] * ?) \</title\> " – <span class="text-secondary"> <small> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/31791/">netadictos</a></span> <span></span> </small> </span> </p> </div> </div> </div> <div itemprop="comment" class="post-comment"> <div class="row"> <div class="col-lg-1"><span class="text-secondary">+0</span></div> <div class="col-lg-11"> <p class="commenttext">वेब क्लाइंट क्लास में टाइमआउट (और अन्य सामान) जोड़ने के लिए, यह मार्गदर्शिका एक अच्छा समाधान प्रदान करती है: http://codegator.com/mcook/archive/2006/07/17/extending-webclient-using- c.aspx – <span class="text-secondary"> <small> <span></span> </small> </span> </p> </div> </div> </div> </div> </div> </article> <div> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="4319274062" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <article class="board-top-1 padding-top-10"> <div class="post-col vote-info"> <span class="count">0<i class="fa fa-thumbs-up"></i></span> </div> <div class="post-offset"> <div class="answer fmt"> <p>इसे पूरा करने के लिए आपको कुछ चीजें करने की आवश्यकता होगी। ताकि आप समय में एकाधिक अनुरोध को संसाधित और HTTP अनुरोध है कि किए जा रहे हैं की संख्या को अधिकतम कर सकते हैं</p> <ul> <li>, अपने अनुप्रयोग पिरोया करें।</li> <li>async अनुरोध Durring, केवल डेटा की मात्रा को वापस खींचने के लिए चाहते हैं डाउनलोड, तो आप शायद डेटा पर पार्स करने कर सकता है के रूप में इसे वापस</li> <li>की तलाश में आता है शायद शीर्षक नाम बाहर निकलने के लिए regex का उपयोग करना चाहते हैं</li> </ul> <p>मैंने एसईओ बॉट्स के साथ पहले यह किया है और मैं एक ही समय में लगभग 10,000 अनुरोधों को संभालने में सक्षम हूं। आपको बस यह सुनिश्चित करने की ज़रूरत है कि प्रत्येक वेब अनुरोध स्वयं धागे में निहित हो।</p> </div> <div class="post-info"> <div class="post-meta row"> <p class="text-secondary col-lg-6"> <span class="source"> <a rel="noopener" target="_blank" href="https://stackoverflow.com/q/329317">स्रोत</a> </span> </p> <p class="text-secondary col-lg-6"> <span class="float-right date"> <span>2008-11-30 20:29:34</span> </p> <p class="col-12"></p> <p class="col-12"></p></div> </div> <!-- comments --> <div class="comments"> <div itemprop="comment" class="post-comment"> <div class="row"> <div class="col-lg-1"><span class="text-secondary">+0</span></div> <div class="col-lg-11"> <p class="commenttext">आप निश्चित रूप से * नहीं * प्रत्येक का अपना अनुरोध कर देना चाहता हूँ थ्रेड अगर आप एक समय में 10,000 अनुरोधों को संभालना चाहते हैं! (शामिल स्टैक आपको पागल की तरह आपकी याददाश्त खाएगा।) एसिंक एपीआई का उपयोग करके ऑपरेशन को समानांतर * बिना * प्रति अनुरोध के लिए आपको थ्रेड की लागत होगी। – <span class="text-secondary"> <small> <span></span> </small> </span> </p> </div> </div> </div> <div itemprop="comment" class="post-comment"> <div class="row"> <div class="col-lg-1"><span class="text-secondary">+0</span></div> <div class="col-lg-11"> <p class="commenttext">यह एक महत्वपूर्ण मुद्दा है क्योंकि मुझे केवल एक ही समय में एक ही अनुरोध करने की आवश्यकता है। गति की आवश्यकता इसलिए है क्योंकि उपयोगकर्ता उत्तर की प्रतीक्षा कर रहा है। – <span class="text-secondary"> <small> <span></span> </small> </span> </p> </div> </div> </div> <div itemprop="comment" class="post-comment"> <div class="row"> <div class="col-lg-1"><span class="text-secondary">+0</span></div> <div class="col-lg-11"> <p class="commenttext">@ जोन, जैसा कि मैंने कहा था कि मेरा एक एसईओ बॉट था जो विश्लेषण करता है और स्पष्ट रूप से आप स्मृति को उचित रखने के लिए प्रति विश्लेषण के समय अनुरोधों की संख्या पर सीमाएं रखना चाहते हैं। हालांकि 10,000 एक तनाव परीक्षण परिदृश्य था। और एसिंक एक हेडर डाउनलोड करने के बारे में एक सुझाव था। – <span class="text-secondary"> <small> <span></span> </small> </span> </p> </div> </div> </div> </div> </div> </article> </div> <div class="clearfix"> </div> <div class="relative-box"> <div class="relative">संबंधित मुद्दे</div> <ul class="relative_list"> <li> 1. <a href="http://hi.voidcc.com/question/p-ghwffhtn-d.html" target="_blank" title="सी/सी ++/जावा/सी #"> सी/सी ++/जावा/सी # </a> </li> <li> 2. <a href="http://hi.voidcc.com/question/p-woosyemh-b.html" target="_blank" title="सी #, सी/सी ++ या ऑब्जेक्टिव-सी"> सी #, सी/सी ++ या ऑब्जेक्टिव-सी </a> </li> <li> 3. <a href="http://hi.voidcc.com/question/p-wloifxtj-b.html" target="_blank" title="सी/सी ++"> सी/सी ++ </a> </li> <li> 4. <a href="http://hi.voidcc.com/question/p-aoeqrkqa-b.html" target="_blank" title="सी/सी ++"> सी/सी ++ </a> </li> <li> 5. <a href="http://hi.voidcc.com/question/p-alblohda-d.html" target="_blank" title="सी/सी ++"> सी/सी ++ </a> </li> <li> 6. <a href="http://hi.voidcc.com/question/p-dtrqsgsl-e.html" target="_blank" title="सी/सी ++"> सी/सी ++ </a> </li> <li> 7. <a href="http://hi.voidcc.com/question/p-tdljzffv-h.html" target="_blank" title="सी/सी ++"> सी/सी ++ </a> </li> <li> 8. <a href="http://hi.voidcc.com/question/p-cmfkwoqv-k.html" target="_blank" title="सी/सी ++"> सी/सी ++ </a> </li> <li> 9. <a href="http://hi.voidcc.com/question/p-eprvrbdv-n.html" target="_blank" title="सी/सी ++"> सी/सी ++ </a> </li> <li> 10. <a href="http://hi.voidcc.com/question/p-bgmcmyxm-o.html" target="_blank" title="सी/सी ++"> सी/सी ++ </a> </li> <li> 11. <a href="http://hi.voidcc.com/question/p-zdfqlbeu-o.html" target="_blank" title="सी/सी ++"> सी/सी ++ </a> </li> <li> 12. <a href="http://hi.voidcc.com/question/p-etdwtaku-y.html" target="_blank" title="सी/सी ++"> सी/सी ++ </a> </li> <li> 13. <a href="http://hi.voidcc.com/question/p-pqqmlwup-r.html" target="_blank" title="सी/सी ++"> सी/सी ++ </a> </li> <li> 14. <a href="http://hi.voidcc.com/question/p-nnpxoaib-z.html" target="_blank" title="सी/सी ++"> सी/सी ++ </a> </li> <li> 15. <a href="http://hi.voidcc.com/question/p-gjiulwcl-ba.html" target="_blank" title="सी/सी ++"> सी/सी ++ </a> </li> <li> 16. <a href="http://hi.voidcc.com/question/p-pucjwavi-bb.html" target="_blank" title="सी/सी ++"> सी/सी ++ </a> </li> <li> 17. <a href="http://hi.voidcc.com/question/p-wrtrzxhz-u.html" target="_blank" title="सी/सी ++"> सी/सी ++ </a> </li> <li> 18. <a href="http://hi.voidcc.com/question/p-wnedmsbq-bm.html" target="_blank" title="सी/सी ++"> सी/सी ++ </a> </li> <li> 19. <a href="http://hi.voidcc.com/question/p-bxchqkdc-a.html" target="_blank" title="सी/सी ++"> सी/सी ++ </a> </li> <li> 20. <a href="http://hi.voidcc.com/question/p-vsilokdf-b.html" target="_blank" title="सी/सी ++"> सी/सी ++ </a> </li> <li> 21. <a href="http://hi.voidcc.com/question/p-abzlwqfc-b.html" target="_blank" title="सी/सी ++"> सी/सी ++ </a> </li> <li> 22. <a href="http://hi.voidcc.com/question/p-ckgdhsdv-c.html" target="_blank" title="सी/सी ++"> सी/सी ++ </a> </li> <li> 23. <a href="http://hi.voidcc.com/question/p-hytxydjy-d.html" target="_blank" title="सी/सी ++"> सी/सी ++ </a> </li> <li> 24. <a href="http://hi.voidcc.com/question/p-vivqwgfs-n.html" target="_blank" title="सी/सी ++"> सी/सी ++ </a> </li> <li> 25. <a href="http://hi.voidcc.com/question/p-qrcgxjqg-n.html" target="_blank" title="सी/सी ++"> सी/सी ++ </a> </li> <li> 26. <a href="http://hi.voidcc.com/question/p-bgedhqio-p.html" target="_blank" title="सी/सी ++"> सी/सी ++ </a> </li> <li> 27. <a href="http://hi.voidcc.com/question/p-qqingqnw-p.html" target="_blank" title="सी/सी ++"> सी/सी ++ </a> </li> <li> 28. <a href="http://hi.voidcc.com/question/p-fdiundku-z.html" target="_blank" title="सी/सी ++"> सी/सी ++ </a> </li> <li> 29. <a href="http://hi.voidcc.com/question/p-glxftqxt-ba.html" target="_blank" title="सी/सी ++"> सी/सी ++ </a> </li> <li> 30. <a href="http://hi.voidcc.com/question/p-bkehxdgb-bb.html" target="_blank" title="सी/सी ++"> सी/सी ++ </a> </li> </ul> </div> <div> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-6208739752673518" data-ad-slot="3534119089"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="padding-top-10"></div> </div> </div> <script type="text/javascript" src="http://img2.voidcc.com/voidso/script/side.js?t=1652515422348"></script> <script type="text/javascript" src="http://img2.voidcc.com/voidso/plugin/highlight/highlight.pack.js"></script> <link href="http://img2.voidcc.com/voidso/plugin/highlight/styles/docco.css" media="screen" rel="stylesheet" type="text/css" /> <script type="text/javascript"> $('pre').each(function(i, e) { hljs.highlightBlock(e, "<span class='indent'> </span>", false) }); </script> <div class="col-lg-3 col-md-4 col-sm-5"> <div id="rightTop"> <div class="row"> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- VOIDCC问答侧边栏广告 --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="3862022848" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="row sidebar panel panel-default"> <div class="panel-heading font-bold"> नवीनतम प्रश्न </div> <div class="m-b-sm m-t-sm clearfix"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://hi.voidcc.com/question/p-ftyjoeac-cg.html" target="_blank" title="क्या आप पैरामीटर पास करने के लिए structs के लिए स्विफ्ट के डिफ़ॉल्ट प्रारंभकर्ता का लाभ उठा सकते हैं?"> क्या आप पैरामीटर पास करने के लिए structs के लिए स्विफ्ट के डिफ़ॉल्ट प्रारंभकर्ता का लाभ उठा सकते हैं? </a> </li> <li class="side_article_list_item"> 2. <a href="http://hi.voidcc.com/question/p-oztwonbq-cq.html" target="_blank" title="भरण तीर"> भरण तीर </a> </li> <li class="side_article_list_item"> 3. <a href="http://hi.voidcc.com/question/p-sqvcqxwq-bw.html" target="_blank" title="एक्स-अक्ष टिक लेबल को 2^x प्रारूप में कैसे प्रारूपित करें?"> एक्स-अक्ष टिक लेबल को 2^x प्रारूप में कैसे प्रारूपित करें? </a> </li> <li class="side_article_list_item"> 4. <a href="http://hi.voidcc.com/question/p-nquowjqv-bz.html" target="_blank" title="मैं कैसे जांच सकता हूं कि कोई ब्राउज़र WebAssembly का समर्थन करता है या नहीं?"> मैं कैसे जांच सकता हूं कि कोई ब्राउज़र WebAssembly का समर्थन करता है या नहीं? </a> </li> <li class="side_article_list_item"> 5. <a href="http://hi.voidcc.com/question/p-smcwahed-bv.html" target="_blank" title="सफल रूप से लॉगिन करने के बाद किसी अन्य पृष्ठ को रीडायरेक्ट करने के लिए कैसे करें"> सफल रूप से लॉगिन करने के बाद किसी अन्य पृष्ठ को रीडायरेक्ट करने के लिए कैसे करें </a> </li> <li class="side_article_list_item"> 6. <a href="http://hi.voidcc.com/question/p-dtlzqleq-bv.html" target="_blank" title="केवल एक बार निर्दिष्ट एक निश्चित भविष्य के समय AWS Lambda फ़ंक्शन को आमंत्रित करें"> केवल एक बार निर्दिष्ट एक निश्चित भविष्य के समय AWS Lambda फ़ंक्शन को आमंत्रित करें </a> </li> <li class="side_article_list_item"> 7. <a href="http://hi.voidcc.com/question/p-ptdzzpnc-ch.html" target="_blank" title="ggplot2"> ggplot2 </a> </li> <li class="side_article_list_item"> 8. <a href="http://hi.voidcc.com/question/p-szqwxsow-cc.html" target="_blank" title="जीडब्ल्यूटी मॉड्यूल com.vaadin.v7.Vaadin7WidgetSet नहीं मिला"> जीडब्ल्यूटी मॉड्यूल com.vaadin.v7.Vaadin7WidgetSet नहीं मिला </a> </li> <li class="side_article_list_item"> 9. <a href="http://hi.voidcc.com/question/p-tlknlvar-cb.html" target="_blank" title="Vue.js: "लेखन त्रुटि: # <Object> का सेट नहीं कर सकता संपत्ति रंगमंच की सामग्री है जो केवल एक गेटर है""> Vue.js: "लेखन त्रुटि: # <Object> का सेट नहीं कर सकता संपत्ति रंगमंच की सामग्री है जो केवल एक गेटर है" </a> </li> <li class="side_article_list_item"> 10. <a href="http://hi.voidcc.com/question/p-bnlbziqt-cb.html" target="_blank" title="सीएसएस - एक पाठ रूपरेखा के साथ पाठ छाया को जोड़ो?"> सीएसएस - एक पाठ रूपरेखा के साथ पाठ छाया को जोड़ो? </a> </li> </ul> </div> </div> </div> <p class="article-nav-bar"></p> <div class="row sidebar article-nav"> <div class="row box_white visible-sm visible-md visible-lg margin-zero"> <div class="top"> <h3 class="title"><i class="glyphicon glyphicon-th-list"></i> संबंधित मुद्दे</h3> </div> <div class="article-relative-content"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://hi.voidcc.com/question/p-ghwffhtn-d.html" target="_blank" title="सी/सी ++/जावा/सी #"> सी/सी ++/जावा/सी # </a> </li> <li class="side_article_list_item"> 2. <a href="http://hi.voidcc.com/question/p-woosyemh-b.html" target="_blank" title="सी #, सी/सी ++ या ऑब्जेक्टिव-सी"> सी #, सी/सी ++ या ऑब्जेक्टिव-सी </a> </li> <li class="side_article_list_item"> 3. <a href="http://hi.voidcc.com/question/p-wloifxtj-b.html" target="_blank" title="सी/सी ++"> सी/सी ++ </a> </li> <li class="side_article_list_item"> 4. <a href="http://hi.voidcc.com/question/p-aoeqrkqa-b.html" target="_blank" title="सी/सी ++"> सी/सी ++ </a> </li> <li class="side_article_list_item"> 5. <a href="http://hi.voidcc.com/question/p-alblohda-d.html" target="_blank" title="सी/सी ++"> सी/सी ++ </a> </li> <li class="side_article_list_item"> 6. <a href="http://hi.voidcc.com/question/p-dtrqsgsl-e.html" target="_blank" title="सी/सी ++"> सी/सी ++ </a> </li> <li class="side_article_list_item"> 7. <a href="http://hi.voidcc.com/question/p-tdljzffv-h.html" target="_blank" title="सी/सी ++"> सी/सी ++ </a> </li> <li class="side_article_list_item"> 8. <a href="http://hi.voidcc.com/question/p-cmfkwoqv-k.html" target="_blank" title="सी/सी ++"> सी/सी ++ </a> </li> <li class="side_article_list_item"> 9. <a href="http://hi.voidcc.com/question/p-eprvrbdv-n.html" target="_blank" title="सी/सी ++"> सी/सी ++ </a> </li> <li class="side_article_list_item"> 10. <a href="http://hi.voidcc.com/question/p-bgmcmyxm-o.html" target="_blank" title="सी/सी ++"> सी/सी ++ </a> </li> </ul> </div> </div> </div> </div> </div> </div> </div><!-- wrap end--> <!-- footer --> <footer id="footer"> <div class="bg-simple lt"> <div class="container"> <div class="row padder-v m-t"> <div class="col-xs-8"> <ul class="list-inline"> <li><a href="http://hi.voidcc.com/contact">हमसे संपर्क करें</a></li> <li>© 2020 HI.VOIDCC.COM</li> <li><a rel="nofollow" href="https://beian.miit.gov.cn/" target="_blank">沪ICP备13005482号-13</a></li> <li><script type="text/javascript" src="https://s9.cnzz.com/z_stat.php?id=1280098168&web_id=1280098168"></script></li> <li><a href="http://cn.voidcc.com/" target="_blank" title="程序问答园区">简体中文</a></li> <li><a href="http://hk.voidcc.com/" target="_blank" title="程序問答園區">繁體中文</a></li> <li><a href="http://ru.voidcc.com/" target="_blank" title="поле вопросов и ответов">Русский</a></li> <li><a href="http://de.voidcc.com/" target="_blank" title="Frage - und - antwort - Park">Deutsch</a></li> <li><a href="http://es.voidcc.com/" target="_blank" title="Preguntas y respuestas">Español</a></li> <li><a href="http://hi.voidcc.com/" target="_blank" title="कार्यक्रम प्रश्न और उत्तर पार्क">हिन्दी</a></li> <li><a href="http://it.voidcc.com/" target="_blank" title="IL Programma di chiedere Park">Italiano</a></li> <li><a href="http://ja.voidcc.com/" target="_blank" title="プログラム問答園区">日本語</a></li> <li><a href="http://ko.voidcc.com/" target="_blank" title="프로그램 문답 단지">한국어</a></li> <li><a href="http://pl.voidcc.com/" target="_blank" title="program o park">Polski</a></li> <li><a href="http://tr.voidcc.com/" target="_blank" title="Program soru ve cevap parkı">Türkçe</a></li> <li><a href="http://vi.voidcc.com/" target="_blank" title="Đáp ứng viên">Tiếng Việt</a></li> <li><a href="http://fr.voidcc.com/" target="_blank" title="Programme interrogation Park">Française</a></li> </ul> </div> </div> </div> </div> </div> </footer> <!-- / footer --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-77509369-5"></script> <script> window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } gtag('js', new Date()); gtag('config', 'UA-77509369-5'); </script> <script> var _hmt = _hmt || []; (function () { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?67d4731349f0b00136755b80364ce381"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </body> </html>