在c#中读取网页的iframe内容
我最近一直在使用下载内容的简短代码已被用作: using (var client = new WebClient()) { string html = client.DownloadString("url"); } 我需要使用什么来读取C#? 中的iframe内容. 进行测试,我正在使用 >其中包含iframe的站点. 解决方案 您必须在主页中搜索iframe标签 using (var client = new WebClient()) { string html = client.DownloadString("url"); string src = ... //find iframe source with regex string iframe = client.DownloadString(src); } 对于正则罚款,您可以使用此正则表达式获得C# 中图像的SRC 编辑:
0 2023-12-01
编程技术问答社区
Webclient和语言
我想用德语刮擦Google建议: string url = "http://google.de/complete/search?output=toolbar&q=" + txtResults.Lines[i].Replace(" ", "%20%"); WebClient client = new WebClient(); client.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:17.0) Gecko/17.0 Firefox/17.0"); client.Headers.Add("Accept-Encoding:", "gzip, deflate"); client.Headers.Add("Connection:", "keep-alive"); doc.Load(client.OpenRead(url), System.Text.Encoding.UTF8, true); ,但我总是
0 2023-12-01
编程技术问答社区
使用WebClient和WebRequest的编码差异?
在获得一些随机的西班牙报纸索引时,我没有使用WebRequest正确获得音调,它们会产生这个怪异的角色:�,而使用WebClient从同一URI下载响应,我得到了适当的响应. 为什么这种差异? var client = new WebClient(); string html = client.DownloadString(endpoint); vs WebRequest request = WebRequest.Create(endpoint); using (WebResponse response = request.GetResponse()) { Stream stream = response.GetResponseStream(); StreamReader reader = new StreamReader(stream); string html = reader.ReadToEnd(); } 解决方案 您只是假设实体
0 2023-12-01
编程技术问答社区
C# WebClient-DownloadString 编码不良
我正在尝试从亚马逊下载HTML文档,但是由于某种原因,我得到了一个不良编码的字符串,例如"�� -k.g.g.e". 这是我尝试的代码: using (var webClient = new System.Net.WebClient()) { var url = "https://www.amazon.com/dp/B07H256MBK/"; webClient.Encoding = Encoding.UTF8; var result = webClient.DownloadString(url); } 使用httpclient时发生同一件事: var url = "https://www.amazon.com/dp/B07H256MBK/"; var httpclient = new HttpClient(); var html = await httpclient.GetStringAsync(url); 我还尝试在字节中读取结果,然
0 2023-12-01
编程技术问答社区
如何用HttpClient取代WebClient?
我在我的ASP.NET MVC Web应用程序中具有以下WebClient: using (WebClient wc = new WebClient()) // call the Third Party API to get the account id { string url = currentURL + "resources/" + ResourceID + "/accounts?AUTHTOKEN=" + pmtoken; var json = await wc.DownloadStringTaskAsync(url); } 所以任何人都可以建议我如何将其从WebClient更改为HttpClient? 解决方案 // Injecting HttpClient would be a better idea if possible HttpClient client = new(); string page = await client.G
0 2023-12-01
编程技术问答社区
C#-如何进行HTTP调用
我想拨打网站的HTTP.我只需要点击URL,而不想上传或下载任何数据.什么是最简单,最快的方法. 我尝试了以下代码,但它的速度很慢,在第二个重复请求之后,它只是进入59个偏斜的超时,而不是简历: WebRequest webRequest = WebRequest.Create("http://ussbazesspre004:9002/DREADD?" + fileName); webRequest.Method = "POST"; webRequest.ContentType = "application/x-www-form-urlencoded"; webRequest.ContentLength = fileName.Length; Stream os = webRequest.GetRequestStream(); os.Write(buffer, 0, buffer.Length); os.Close(); 正在使用更有效的网络级?? WebClien
0 2023-12-01
编程技术问答社区
使用WebClient或WebRequest登录网站并访问数据
我正在尝试使用WebClient/WebRequest在网站上访问限制数据.该网站中没有官方的API,因此我要做的就是填写HTML表单并将值发布到服务器,因此我登录了. 我尝试了 this 和这个,但看起来并不像即将到来的请求已登录. 后一个示例更具吸引力,因为我显然更喜欢WebClient,但是Legacy WebRequest会做. 无论如何,在第一个示例中,我认为它确实登录了,但是访问私有数据的即将到来的请求返回带有消息"这是成员的内容"的页面. 如何使WebClient永久登录? 解决方案 更新: 参见我的评论下面. 这是我所做的,它有效( Credit ). 首先添加此类: namespace System.Net { using System.Collections.Specialized; using System.Linq; using System.Text; public class Cooki
0 2023-12-01
编程技术问答社区
通过WebClient发送带有边界的POST请求
我在通过C#API中的WebClient发送发布请求时有问题. 邮政请求是: POST http://aaa.com/login.php HTTP/1.1 Host: www.aaa.com Connection: keep-alive Content-Length: 346 Cache-Control: max-age=0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Origin: http://www.aaa.com User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.152 Safari/537.22 Content-Type: multipart/form-data; boundary=----WebKitFormBoun
0 2023-12-01
编程技术问答社区
无法在Fiddler中看到WebClient的发布请求
我有一个ASP.NET WebForms应用程序(发件人),该应用将WebClient Post请求发送到同一Dev机器上的另一个ASP.NET应用程序(接收者). WebClient帖子是通过单击"发件人"应用程序中的一个按钮来启动的.这是一个测试应用程序,表单仅具有按钮.我可以从Fiddler中的按钮中看到帖子,但我看不到WebClient方法的帖子请求. 为什么? 我知道WebClient帖子成功运行,因为在接收器应用中击中了断点,并且表单集合从发送者应用程序的WebClient请求中具有输入字段的值. (使用Windows 8.1) 更新这是呼叫: using (var client = new WebClient()) { client.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded"; var data = "FirstName=John"
0 2023-11-30
编程技术问答社区
多线程代理检查程序
我几乎没有: using (WebClient wc = new WebClient()) { wc.Proxy = new WebProxy("IP", Port); resume: if (!wc.IsBusy) { string rtn_msg = string.Empty; try { rtn_msg = wc.DownloadString(new Uri("http://google.com/")); } catch (WebException) { }
0 2023-11-30
编程技术问答社区
C# WebClient登录到网站
我试图通过提供(正确的)用户名和密码来登录网站. 这是代码: string URL = @"https://www.t-mobile.co.uk/service/your-account/login/"; string username = "a_user"; string password = "a_password"; //ServicePointManager.Expect100Continue = false; CookieAwareClient client = new CookieAwareClient(); NameValueCollection postData = new NameValueCollection(); postData.Add("username", username); postData.Add("pass
0 2023-11-30
编程技术问答社区
在多个HttpWebRequests中使用同一个CookieContainer是否安全?
我正在做一种webcrawler,我需要在请求之间持续cookie状态. 我下载了所有页面async创建新的httpwebrequest实例,但设置了相同的cookiecontainer.这些页面可以写和读取cookie. 我可以安全吗?有任何其他选择是cookiecontainer的子类别,并将锁定锁定? MSDN说此类不是安全的,但实际上,我可以做吗? 解决方案 根据文档: 这种类型的任何公共静态(在Visual Basic中共享)成员是 线程安全.任何实例成员都不能保证为线程 安全. 因此,如果要在多个线程之间共享相同的实例,则应确保正确锁定.但是,由于CookieContainer类的成员实际上不是由您的代码操纵,而是由您创建的其他httpwebrequest实例隐含的打败我想您要在这里实现的目的和平行性水平. 在实践中,您是否会遇到问题是另一个话题.问题是文档(因此作者)不能为您提供任何保证. 其他解决方案 实际上,如果您查看
2 2023-11-30
编程技术问答社区
WebClient下载字符串与WebBrowser不同 查看来源
我正在创建一个C#4.0应用程序,以使用Web客户端下载网页内容. WebClient函数 public static string GetDocText(string url) { string html = string.Empty; try { using (ConfigurableWebClient client = new ConfigurableWebClient()) { /* Set timeout for webclient */ client.Timeout = 600000; /* Build url */ Uri innUri = null; if (!url.StartsWith(
0 2023-11-30
编程技术问答社区
从C#中的没有HTML的网页中读取文本
我正在尝试使用C#中的WebClient提取URL的文本. 但是内容包含HTML标签,我只需要原始文本. 我的代码如下: string webURL = "https://myurl.com"; WebClient wc = new WebClient(); byte[] rawByteArray = wc.DownloadData(webURL); string webContent = Encoding.UTF8.GetString(rawByteArray); 我在上述代码上获取以下错误: '远程服务器返回了一个错误:(403)禁止. 并将我的代码更改为: string webURL = "https://myurl.com"; WebClient wc = new WebClient(); wc.Headers.Add("user-agent", "Only a Header!"); byte[] rawByteArray = wc.DownloadD
0 2023-11-29
编程技术问答社区
用DownloadDataAsync下载多个文件的AWAIT系统
我有一个zip文件创建者,该创建者接纳了URL的String[],并返回带有String[]> 中所有文件的zip文件 我认为会有很多例子,但是我似乎找不到"如何异步下载许多文件并完成后返回" 返回的答案 如何一次下载{n}文件,并仅在所有下载完成时才返回字典? private static Dictionary ReturnedFileData(IEnumerable urlList) { var returnList = new Dictionary(); using (var client = new WebClient()) { foreach (var url in urlList) { client.DownloadDataCompleted += (sender1, e1) => returnList.
0 2023-11-29
编程技术问答社区
C# WebClient下载空文件
我正在研究一个使用Bing的API搜索和下载图像的应用程序. Bing的API提供了一组图像链接,我迭代它们并下载每个图像链接. 我遇到的问题是有时下载的文件大小为0kb. 我认为这是因为WebClient首先创建文件名,然后尝试写入它,因此会发生这种情况.因此,当它由于某种原因无法写入时,这会发生.问题是它发生在没有异常的情况下发生的情况,因此我的"捕获"语句无法捕获此内容并删除文件. public void imageFetcher(string performerName, int maxNumberOfImages, RichTextBox richTextBox) { string performersDirPath = Environment.CurrentDirectory + @"\Performers\"; string performerPath = performersDirPath + performerName
0 2023-11-29
编程技术问答社区
在C#中用WebClient下载Csv文件,但文件的大小却比用浏览器下载时小。
我有一个返回CSV文件的链接.当我在浏览器(Chrome,firefox,...)下载的文件大小时,下载的文件大小为86 kb,但是当我想下载以下代码时,大小只有25 kb,当我打开下载时,大小为25 kb文件没有正确的数据(意味着没有列,无法读取数据) 您可以在浏览器和代码 中尝试它 string url = "http://tsetmc.com/tsev2/data/Export-txt.aspx?t=i&a=1&b=0&i=43283802997035462"; WebClient wc = new WebClient(); wc.DownloadFile(url, "111.csv"); 解决方案 WebClient正在返回您的zip文件,而不是纯文本/CSV文件 我将wc输出文件扩展名更改为zip,它正在工作... zip将包含您在参数中指定的文件 其他解决方案 当Akshay Sandhu指出下载的文件被GZIP编码压缩,这就是为什么在试图将其打开作
0 2023-11-29
编程技术问答社区
使用WebClient和TaskAsync的UserState从Async CTP下载
我目前正在使用异步CTP,需要将此代码转换为可以使用task.whenall()的代码. 我迄今为止所做的是使用Userstate对象,并将标识符(AID)放入其中,然后在完成的事件中使用. 但是,wc.downloadfiletaskasync methode与UserState没有超载.我该怎么办? for (int i = 0; i { v
0 2023-11-29
编程技术问答社区
支持超时的多线程网络请求
如果您是出于简单目的而使用的,则网络限制已经足够了.没有超时您可以继承它,并且可以轻松地覆盖它是getwebrequest方法: protected override WebRequest GetWebRequest(Uri address) { WebRequest request = base.GetWebRequest(address); request.Timeout = Timeout; return request; } If you are using it multithreaded way, you have to set MaxConnection by code or app.config: 提高.net中多线程httpwebrequests的性能 您也可以轻松地并行化: in .NET 4.0 也许Microsoft创建了用于Webclient(HTTPWebrequest)插入问题的新的HTTPCLIENT类
0 2023-11-29
编程技术问答社区
如何在外层DIV中找到带有标签alert的元素
我试图在此页面并将其放入对象(domelement)中进行一些测试,问题是eLemnt reg-error-yid,它是内心div的内心div yid-field-suggestion,我试图尝试getElementById,byname,byxpath和getfirstbyxpath,这一切都无法正常工作,我也尝试使用web driver更改WebClient并使用driver.findElement(By.className("oneid-error-message"))它也无法正常工作 注册消息的精力 A Yahoo account already exists with this email address.
0 2023-11-29
编程技术问答社区