3

C#を使用してスクレイプHTTPSをスクリーニングするには?

4

5 に答える 5

5

System.Net.WebClient を使用して HTTPS 接続を開始し、ページをプルダウンしてそれをスクレイピングできます。

于 2009-12-04T15:31:56.003 に答える
5

Html Agility Packを調べてください。

于 2009-12-04T15:33:32.053 に答える
4

System.Net.WebClient を使用して Web ページを取得できます。以下に例を示します: http://www.codersource.net/csharp_screen_scraping.html

于 2009-12-04T15:35:10.690 に答える
2

何らかの理由で Web クライアントとしてページにアクセスする際に問題が発生した場合、または要求がブラウザーからのものであるかのように見せたい場合は、アプリで Web ブラウザー コントロールを使用してページを読み込むことができます。 Web ブラウザー コントロールから読み込まれたコンテンツのソースを使用します。

于 2009-12-04T15:34:00.647 に答える
1

具体的な(些細ではありますが)例を次に示します。クエリ文字列で船名を VesselFinder に渡すことができますが、その名前の船が 1 つしか見つからない場合でも、検索結果画面には 1 つの船が表示されます。この例では、そのケースを検出し、ユーザーを船の追跡マップに直接誘導します。

        string strName = "SAFMARINE MAFADI";
        string strURL = "https://www.vesselfinder.com/vessels?name=" + HttpUtility.UrlEncode(strName);
        string strReturnURL = strURL;
        string strToSearch = "/?imo=";
        string strPage = string.Empty;
        byte[] aReqtHTML;


        WebClient objWebClient = new WebClient();
        objWebClient.Headers.Add("User-Agent: Other");   //You must do this or HTTPS won't work
        aReqtHTML = objWebClient.DownloadData(strURL);  //Do the name search
        UTF8Encoding utf8 = new UTF8Encoding();

        strPage = utf8.GetString(aReqtHTML); // get the string from the bytes

        if (strPage.IndexOf(strToSearch) != strPage.LastIndexOf(strToSearch))
        {
            //more than one instance found, so leave return URL as name search
        }
        else if (strPage.Contains(strToSearch) == true)
        {
            //find the ship's IMO 
            strPage = strPage.Substring(strPage.IndexOf(strToSearch)); //cut off the stuff before
            strPage = strPage.Substring(0, strPage.IndexOf("\"")); //cut off the stuff after

        }

        strReturnURL = "https://www.vesselfinder.com" + strPage;
于 2015-10-23T01:32:52.327 に答える