WPF无法从URL中获取WebP图像?
我无法从URL检索图像.以前,直到设置HTTPCLIENT标题之前,我根本无法连接到该站点.我能够从其他来源检索图像,但不能从这个特定的来源中检索. 检索图像的代码: var img = new BitmapImage(); img.BeginInit(); img.UriSource = new Uri("https://i1.adis.ws/i/jpl/jd_083285_a?qlt=80&w=600&h=425&v=1&fmt=webp", UriKind.RelativeOrAbsolute); img.EndInit(); Console.Out.WriteLine(); ImageShoe.Source = img; 如果我尝试使用不同的URL检索其他映像,例如 https://www.google.com/images/branding/googlelogo/1x/googlel
0 2024-04-17
编程技术问答社区
在C#.NET中,是否有办法从ajax网页上刮取动态数据?
我很想轮询一个不断更新动态数据并获取数据的网页.我不想每秒重新加载整个页面.是否可以在不重新加载页面的情况下获取该数据? 我将作为演示目的的控制台应用程序编码. 非常感谢! 解决方案 不是真的.对于初学者来说,HTTP是无状态的.执行HTTP请求时,即使使用动态例程来生成它,您将始终将返回静态数据. 听起来不可能以任何其他方式键入用于构建页面的数据(即直接链接到DB,Web服务等) - 如果可以的话,您不会刮擦网页. 即使您可以做到这一点,也不会有很大的不同.您仍然必须将您现在拥有的内容与远程服务的数据进行比较.没有某种推动通知,您正在进行轮询,如果您要进行轮询,是的,您必须一直检查. 其他解决方案 您可以使用返回的标头数据检查最后一个修改的日期: HttpWebResponse.LastModified ...但是,它完全由服务器设置此日期 - 因此它可能准确也可能不准确. 防止手动刮擦的另一个选项可能是简单地对返回的数据进行校验
0 2024-04-16
编程技术问答社区
Html Agility Pack如何在页面加载后获得动态生成的内容
我试图从" https://www.sideshow.com/collectibles?manufacturer = hot+toys"获取信息. 特别是DIV C-PRODUCTAST ROW SS靶向,但似乎没有检索信息,任何线索 var test = page.DocumentNode.SelectNodes("//div[@class='c-ProductList row ss-targeted']"); 解决方案 使用JavaScript和Ajax在页面加载后生成您要获得的内容.除非它在后台运行浏览器并在页面上执行脚本. .net Core 2.0 先决条件:您需要在PC中安装Chrome Web浏览器. 创建控制台应用程序 安装Nuget软件包 Install-Package HtmlAgilityPack Install-Package Selenium.WebDriver Install-Package Selenium.Chrome.
0 2024-04-16
编程技术问答社区
System.Windows.Forms.WebBrowser等待,直到页面完全加载完毕。
我一直在尝试使用wait和async的许多不同的解决方案.似乎没有任何作用.我找不到真正等待的解决方案,直到页面被满载为止.所有代码都在等待一段时间,但是直到加载页面,我在下一个过程中会遇到错误. 如何将示例代码设置为等待模式,直到在页面上找到Document.GetElementById("quickFind_text_0")元素? 这是我的代码: private void button7_Click(object sender, EventArgs e) { webBrowser1.Navigate("https://company.crm4.dynamics.com/main.aspx?app=d365default&pagetype=entitylist&etn=opportunity"); webBrowser1.Document.GetElementById("shell-container").Docum
0 2024-04-16
编程技术问答社区
html agility pack url scraping-获取完整的html链接
嗨,我正在使用Nuget软件包中的HTML敏捷包,以刮擦网页以获取页面上的所有URL.代码如下所示.但是,它在输出中返回我的方式只是链接只是实际网站的扩展,而不是完整的URL链接,例如 http://www.foo/bar/foobar.com .我要得到的就是"/foobar".有没有办法通过以下代码获取URL的完整链接? 谢谢! static void Main(string[] args) { List linksToVisit = ParseLinks("https://www.facebook.com"); } public static List ParseLinks(string email) { WebClient webClient = new WebClient(); byte[] data = webClient.DownloadData(email)
0 2024-04-16
编程技术问答社区
C# .NET。刮取动态(JS)网站
失败了几个小时后,我来这里.我需要刮擦动态生成的网页(使用vue.js制作,但我不希望共享链接). 我尝试了多种方法( 1 , 2 , 3 ).他们都在此网页上工作. 最有前途的解决方案是使用硒和phantomjs.我尝试过这样的尝试,但我不确定为什么它什至不适用于Google: private void button1_Click(object sender, EventArgs e) { PhantomJSDriverService service = PhantomJSDriverService.CreateDefaultService(); service.IgnoreSslErrors = true; service.LoadImages = false; service.ProxyType = "none"; var driver = new PhantomJSDriver(s
0 2024-04-15
编程技术问答社区
自动输入表格字段和检查网页结果的程序
我正在尝试在C#(也许使用WinForms)中创建一个程序,该程序将在特定我不确定从哪里开始,因为我甚至找不到网站源代码中的表单字段ID,并且不确定网站使用哪种技术. 此外,该程序的目的是输入许可证号列表,并返回每个许可证的姓名和验证状态. DataSource是网站. 关于如何进行此操作的任何信息都将不胜感激,我是中级C#开发人员 - 大多在ASP.NET中工作,尽管感觉Winforms可能更适合该项目. 善意 解决方案 您可以使用 您可以使用webBrowser1.Navigate("url of site") 加载页面 使用webBrowser1.Document.GetElementById("buttonid")在页面中查找元素也可以迭代webBrowser1.Document.Body.All的HtmlElement,然后检查element.GetAttribute("value") == "some vaule"以找到它. 使用element.
0 2024-04-14
编程技术问答社区
Xamarin:如何在WebView中从页面获取HTML?
Xamarin:如何从WebView中的页面中获取HTML? 我为iOS开发Xamarin应用程序,并且正在使用WebView. 仅获取页面的html,我使用以下代码. WebClient wc = new WebClient(); using (Stream st = wc.OpenRead("http://study-csharp.blogspot.jp/")){ using (StreamReader sr = new StreamReader(st, Encoding.UTF8)){ string html = sr.ReadToEnd(); Console.Write(html); } } 但是,我想要用户登录WebView网站后的HTML数据. 我找不到在uiwebview中获取HTML的方法. 预先感谢. 解决方案 您可以只使用JavaScript webView.EvaluateJa
0 2024-04-13
编程技术问答社区
无法使用htmlagilitypack从https URL下载HTML数据
我有一个"小"问题htmlagilitypack(hap).当我尝试从网站获取数据时,我会收到此错误: 在 mscorlib.dll 附加信息:'gzip'不是受支持的编码名称.有关定义自定义编码的信息,请参见文档 对于encoding.registerprovider方法. 我正在使用此代码从网站获取数据: HtmlWeb page = new HtmlWeb(); var url = "https://kat.cr/"; var data = page.Load(url); 此代码后,我会收到该错误.我尝试了Google的所有内容,但没有任何帮助. 有人可以告诉我如何解决这个问题吗? 谢谢 解决方案 HtmlWeb不支持从HTTPS下载.因此,相反,您可以使用WebClient 一些修改自动解压缩GZip: class MyWebClient : WebClient { protected override WebRequ
0 2024-04-13
编程技术问答社区
Html Agility Pack。加载和刮取网页
这是最佳刮擦时获取网页的方法吗? HttpWebRequest oReq = (HttpWebRequest)WebRequest.Create(url); HttpWebResponse resp = (HttpWebResponse)oReq.GetResponse(); var doc = new HtmlAgilityPack.HtmlDocument(); doc.Load(resp.GetResponseStream()); var element = doc.GetElementbyId("//start-left"); var element2 = doc.DocumentNode.SelectSingleNode("//body"); string html = doc.DocumentNode.OuterHtml; 我已经看过HtmlWeb().Load获取一个网页.这是加载和刮擦网页的更好替代方法吗? 好吧,我会尝试的. HtmlDocum
0 2024-04-12
编程技术问答社区
我需要一个强大的网络搜刮器库
我需要一个功能强大的Web刮板库,以便从Web中进行采矿内容.这可以支付或释放两者对我来说都可以.请向我建议一个库或更好的方法来挖掘数据并存储在我喜欢的数据库中.我已经搜索过,但是我没有找到任何好的解决方案.我需要专家的好建议.请帮助我. 解决方案 刮擦真的很容易,您只需要解析要下载的内容并获取所有关联的链接. 最重要的部分是处理HTML的部分.因为大多数浏览器不需要最清洁(或符合标准)的HTML才能进行渲染,因此您需要一个HTML解析器,该解析器将能够理解并非总是很好的HTML. > . 我建议您使用 HTML敏捷包为此目的.它在处理非井形的HTML方面做得很好,并为您提供了一个简单的接口,供您使用XPath查询来获取结果文档中的节点. 除此之外,您只需要选择数据存储即可保存处理的数据(您可以使用任何数据库技术),以及一种从Web下载内容的方法,其中.NET提供了两个高级机制,用于其他解决方案 using System; using System.Colle
2 2024-04-11
编程技术问答社区
如何进行屏幕刮擦?
当没有网络服务API时,您唯一的选择可能是屏幕刮擦,但是如何在C#? 中进行屏幕刮擦. 您如何看待它? 解决方案 马特和保罗的答案是正确的.通过从网站上解析HTML通常是一个坏主意,因为: 解析HTML可能很困难,尤其是在畸形时.如果您要刮一个非常非常简单的页面,那么正则表达式可能会起作用.否则,使用HTML敏捷包等解析框架. 网站是一个移动的目标.每次源网站更改其标记结构时,您都需要更新代码. 屏幕刮擦与JavaScript 的效果不佳.如果目标网站使用任何形式的动态脚本来操纵网页,则您将很难刮擦它.很容易获取HTTP响应,很难刮擦浏览器显示对该响应中包含的客户端脚本的响应. 如果屏幕刮擦是唯一的选择,则这里有一些成功的关键: 使您可以尽可能容易地更改您要寻找的模式.如果可能的话,将模式存储为文本文件或某个地方的资源文件.使其他开发人员(或3个月内)非常容易理解您期望找到的标记. 验证输入并投掷有意义的例外.在您的解析代码中,请注意使您的
2 2024-04-11
编程技术问答社区
如何以编程方式登录网站进行屏幕浏览?
我需要一些不是我的网站的信息,为了获取此信息,我需要登录到网站以收集信息,这是通过HTML表格进行的.我该如何在C#? 中进行此身份验证的屏幕贴图 额外信息: 基于cookie的身份验证. 所需的后行动. 解决方案 您会像填写表格一样提出请求.假设它是帖子,例如,您可以使用正确的数据提出发布请求.现在,如果您不能直接登录到要刮擦的同一页面,则必须在登录请求后跟踪设置的任何cookie,并将其包含在刮擦请求中以允许您保持登录. 可能看起来像: HttpWebRequest http = WebRequest.Create(url) as HttpWebRequest; http.KeepAlive = true; http.Method = "POST"; http.ContentType = "application/x-www-form-urlencoded"; string postData="FormNameForUserId=" + strUser
0 2024-04-11
编程技术问答社区
用C#抓取由JavaScript生成的网页
我有一个Web浏览器和Visual Studio中的标签,基本上我要做的就是从另一个网页中获取一个部分. 我尝试使用WebClient.DownloadString和WebClient.DownloadFile,并且两个都在JavaScript加载内容之前给我网页的源代码.我的下一个想法是使用Web浏览器工具,然后在加载页面后调用webBrowser.DocumentText,但它仍然为我提供了页面的原始来源. 有没有办法可以抓住页面帖子JavaScript加载? 解决方案 问题是浏览器通常执行JavaScript,并且会导致更新的DOM.除非您可以分析JavaScript或拦截其使用的数据,否则您需要像浏览器一样执行代码.过去,我遇到了同一问题,我利用硒和phantomjs渲染页面.呈现页面后,我将使用WebDriver客户端导航DOM并检索所需的内容,请发布Ajax. 在高水平上,这些是: 安装硒: http://docs.seleniumhq.org
0 2024-04-10
编程技术问答社区
用于C#(.NET)的无头浏览器?
I Am(WAS)是一个正在构建GUI Web刮擦应用程序的Python开发人员.最近,我决定迁移到.NET框架并在C#中编写相同的应用程序(此决定不是我的). 在Python中,我使用了机械化库.但是,我似乎找不到.NET中的任何类似内容.我需要的是一个将在无头模式下运行的浏览器,该浏览器具有填写表格,提交表格等能力.JavaScript解析器不是必须的,但这将非常有用. 解决方案 有一些选择: webkit.net.net.net (free) awesomium 它基于Chrome/Webkit,其工作方式就像魅力. 有免费的许可证,也有商业许可证,如果需要,您可以购买源代码: - ) html敏捷pack (free)(免费) 不是无头浏览器) 这有助于从HTML等提取信息,并且可能对您的情况很有用(可能与 HttpWebRequest ) 其他解决方案 更多解决方案: optionus ( nuget软件包) - 轻巧的无头网络
2 2024-04-10
编程技术问答社区
字节对象没有属性find_all
我一直在尝试过去3个小时来刮擦此并获得每个团队的排名,名称,胜利和损失. 实施此代码时: import requests from bs4 import BeautifulSoup halo = requests.get("https://www.halowaypoint.com/en-us/esports/standings") page = BeautifulSoup(halo.content, "html.parser") final = page.encode('utf-8') print(final.find_all("div")) 我一直在得到这个错误 如果有人可以帮助我,那将不胜感激! 谢谢! 解决方案 您正在调用错误变量上的方法,请使用Beautifutsoup对象 page 不是 byte string final : print(page.find_all("div")) 要获得表数据非常简单,所有数据都在DIV内
2 2024-04-05
编程技术问答社区
用java查找网页中的一个词
我正在尝试在特定网页中搜索一个特定单词,我正在使用Java和Eclipse.问题是,如果我正在使用一个几乎没有内容的网页,它可以正常工作,但是当我尝试在"大"网页上尝试时,它找不到单词. 例如:我试图在网页中找到word ["InitialChatFriendsList":https://www.facebook.com,如果它找到了单词,则打印WIN!!! 这是一个完整的Java代码: public class BR4Qustion { public static void main(String[] args) { BufferedReader br = null; try { URL url = new URL("https://www.facebook.com"); br = new BufferedReader(new InputStrea
0 2024-04-04
编程技术问答社区
IE Web自动化-如何使用Excel VBA/XML宏程序从组合框中自动选择值
我是VBA的初学者,我未能从我的Excel电子表格中自动选择"国家名称"或"列表"框.我的代码仅输入国家名称,但不选择它. 如何更改此代码,以便可以从我的Excel电子表格中选择国家名称,然后在Web组合框中选择相同的循环.护照号码,DOB和国籍在我的代码上是正确的.如果您可以手动使用,则可以找到我需要在电子表格中捕获的工作许可证号. Chrome Inspect Element屏幕截图附有此处. 我的代码如下: Sub MOL() Dim IE As New SHDocVw.InternetExplorer Dim Doc As MSHTML.HTMLDocument Dim Buttons As MSHTML.IHTMLElementCollection Dim Button As MSHTML.IHTMLElement Dim HTMLInput As MSHTML.IHTMLElement Dim Tags As MSH
0 2024-04-04
编程技术问答社区
如何从Selenium的Ajax请求中获取数据?
我一直在试图检查我的应用中星巴克礼品卡的余额,我试图捕获使用AJAX请求做出的响应,一旦单击了自动化的检查余额按钮,我该如何在Selenium中获取Ajax响应? using (var driver = new ChromeDriver()) { driver.Navigate().GoToUrl(@"https://www.starbucks.com/card"); driver.FindElement(By.Id("Card_Number")).SendKeys("7848549479363805"); driver.FindElement(By.Id("Card_Pin")).SendKeys("91435723"); driver.FindElement(By.XPath("//button[.='Check Balance']")).Click();
0 2024-04-04
编程技术问答社区
使用Selenium的浏览器自动化。指纹、可识别性和可追溯性?
我想使用Selenium/Web Driver模拟浏览器并与之刮擦一些网站.即使它不是最快的方法,对我来说,它具有许多优势,例如执行脚本等. 对于许多网站,禁止通过自动方法访问它们,例如搜索引擎,例如Google或Bing. 对于一种工具,我需要从Google刮擦几个关键字的估计结果stat.这将看起来如下:模拟访问Google.com并输入关键字的浏览器并刮擦结果,然后在下一个关键字中进行暂停类型后,刮擦结果等... 我的问题是:网站是否有可能认识到我正在使用硒来模拟浏览器而不是手工使用浏览器?尤其是Google案给我一些疑问.我知道硒是由Google或至少由一些在Google工作的人开发的.因此,是否有一些指纹留下一些指纹,或者不可能决定我是我自己使用浏览器还是由Selenium模拟,即使是Google? ? 解决方案 不,没有人实际上可以看到您正在使用硒,而不是用WebDriver手工操纵浏览器.我不确定旧的Selenium RC,但这应该是相同的.这是其工
2 2024-04-04
编程技术问答社区