簡體   English   中英

使用C#從Subscription網站(PHP頁面)下載文件

[英]Downloading a file from a Subscription website ( PHP pages ) using C#

我是Asp.Net C#開發人員,我想從PHP網站下載CSV文件。 抱歉,如果已解決此問題,但是在這種情況下,鏈接顯示的是JavaScript表單提交。

現在,我們在登錄頁面上登錄,然后在搜索頁面上輸入日期。 結果頁面以Html顯示結果,並具有“下載”鏈接,單擊該鏈接將提供CSV文件。

我們希望通過一些屏幕抓取/下載文件來定期“拉” CSV文件。

“下載”鏈接顯示以下JavaScript,用於將表單提交回服務器以下載CSV文件:

javascript:document.aForm.action='download.php'; setTarget();document.aForm.submit();

我想設置一個C#控制台應用程序以使其定期運行:登錄並下載CSV文件。

  1. 我可以使用webclient downloaddata方法訪問此CSV文件嗎? 請提供一個代碼示例。

  2. 我可以做一些程序化的刮擦來登錄並填寫一些搜索條件,然后進入結果頁面以下載csv嗎?

對此有什么建議? html敏捷包? 非常感謝任何鏈接或代碼段。

感謝您的協助。

是的,您可以使用WebClient類,並且可以使用WebClient.DownloadFile方法下載文件。

要么

您可以Curl libcurl .net以供參考,您可以關注此帖子

要登錄到特定頁面,您可以嘗試此操作

WebClient client = new WebClient();
client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705;)");
byte[] bret = client.UploadData("http://www.website.com/post.php", "POST",
            System.Text.Encoding.ASCII.GetBytes("field1=value1&field2=value2") );

string sret = System.Text.Encoding.ASCII.GetString(bret);

獲得成功響應后,可以解析該響應字符串以獲取該超鏈接,然后使用Webclient.DownloadFile下載文件

    try
    {
        client.DownloadFile("http://www.xyz.com/download.php","abc.csv");
        Console.WriteLine("File Saved.");
    }
    catch (WebException we)
    {
        Console.WriteLine(we.Message + "\n" + we.Status.ToString());
    }
    catch (NotSupportedException ne)
    {
        Console.WriteLine(ne.Message);
    }

我猜你的情況,該超鏈接javascript是做一個帖子download.php ,所以不是使用webclient.downloadFile你可以簡單的做一個后使用手動webclient 以上我已經向您展示了如何發布。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM