C# 使用C进行屏幕抓取#

C# 使用C进行屏幕抓取#,c#,https,screen-scraping,html-content-extraction,C#,Https,Screen Scraping,Html Content Extraction,如何使用C#?您可以使用System.Net.WebClient启动HTTPS连接,并下拉页面以使用该连接进行刮取。查看。如果出于某种原因,您在作为web客户端访问页面时遇到问题,或者希望使请求看起来像来自浏览器,您可以在应用程序中使用web浏览器控件,在其中加载页面,并使用web浏览器控件中加载内容的源。您可以使用System.Net.WebClient抓取网页。这里有一个例子:这里有一个具体的(尽管很琐碎)例子。您可以在querystring中将船名传递给VesselFinder,但即使它只

如何使用C#?

您可以使用System.Net.WebClient启动HTTPS连接,并下拉页面以使用该连接进行刮取。

查看。

如果出于某种原因,您在作为web客户端访问页面时遇到问题,或者希望使请求看起来像来自浏览器,您可以在应用程序中使用web浏览器控件,在其中加载页面,并使用web浏览器控件中加载内容的源。

您可以使用System.Net.WebClient抓取网页。这里有一个例子:

这里有一个具体的(尽管很琐碎)例子。您可以在querystring中将船名传递给VesselFinder,但即使它只找到一艘具有该船名的船,它仍会显示一艘船的搜索结果屏幕。本例检测到这种情况,并将用户直接带到船舶的跟踪地图

        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;

如果您需要登录以获取https内容?您需要确保在WebClient中为Cookie分配Cookie容器,以便通过多个请求(例如登录页面和内容页面)传递Cookie。该网站正在使用URL重写。如何获取完整的URL?如果您谈论的是服务器端URL重写,则不知道。但如果你说的是javascript,只需在代码中对其进行解析。我使用的是Firefox插件“脾气数据”。它显示所有发布的数据。link dead:我认为这可能是更新的链接-实际上这不是一个坏主意。