C#を使用してスクレイプHTTPSをスクリーニングするには?
4267 次
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 に答える