- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
写一些网络抓取的东西还很陌生,所以我很抱歉。我正在尝试减少此应用程序的运行时间。浏览大约 100 只股票的列表需要 30 多秒(为简洁起见,我只列出了 5 只股票)。有什么方法可以提高线程/异步编程的效率吗?我可能遇到了雅虎服务器想要一次发送回单个 IP 的限制。最终我的目标是创建一个类“stock”,其中有一堆属性可以像这样获取基于 Web 的数据。
static void Main(string[] args)
{
List<string> stocks = new List<string>() { "AA", "AAL", "AAPL", "ABX", "ADBE" };
foreach (var stock in stocks)
{
Task.Factory.StartNew(() => { getPrice(stock); });
}
Console.ReadLine();
}
private static void getPrice(string stock)
{
var webGet = new HtmlWeb();
var doc = webGet.Load("http://finance.yahoo.com/q?s=" + stock);
HtmlNode ourNode = doc.DocumentNode.SelectSingleNode("//*[@id=\"yfs_l84_" + stock.ToString().ToLower() + "\"]");
if (ourNode != null)
{
Console.WriteLine(stock + ": " + ourNode.InnerText);
}
}
最佳答案
使用 Parallel.ForEach 循环,但不要期望有很大的改进,因为速度 99% 取决于 yahoo 响应时间。
Parallel.ForEach(stocks, stock =>
{
getPrice(stock);
});
使用 Parallel.ForEach,您还可以设置并行度(正在执行的并发操作数)。
Parallel.ForEach(stocks, new ParallelOptions() { MaxDegreeOfParallelism = 3 }, stock =>
{
getPrice(stock);
});
有关详细信息,请查看 MSDN 文档:https://msdn.microsoft.com/en-us/library/dd460720%28v=vs.110%29.aspx和 https://msdn.microsoft.com/en-us/library/system.threading.tasks.parallel%28v=vs.110%29.aspx
关于c# - HTMLAgility 加速 webget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32641313/
第一次尝试使用 HtmlAgility Pack 时遇到了问题。 首先我从一个字符串变量加载。 string NewsText = dr["Message"].ToString(); HtmlAgil
我需要使用 HTMLAgility 包在另一个网页上发布数据。 例如, http://www.riversoft.mk/Products.aspx在这个网站上,我需要使用 HTMLAgility 包遍
写一些网络抓取的东西还很陌生,所以我很抱歉。我正在尝试减少此应用程序的运行时间。浏览大约 100 只股票的列表需要 30 多秒(为简洁起见,我只列出了 5 只股票)。有什么方法可以提高线程/异步编程的
考虑这段最简单的代码: using System; using System.Collections.Generic; using System.Linq; using System.Text
我无法尝试从 DIV 元素的样式属性中删除样式定义。HTML代码: ... 我可能需要对这些元素中的 1 个以上应用操作。 这是我到目前为止使用 HtmlAgilityPack 的结果。 fore
我在谷歌上搜索了将 HTML 转换为不同类型 HTML 的所有可能方法(我猜是 HTML 5)。我运气不好。我正在尝试转换此(RTF 编辑器的标记转换为 HTML)标记
我有如下表格。我想抓取该表每一行的第 1 列和第 4 列。 表的结构是这样的: 每条数据都有一个b标签 我试过这样的事情。但是我没有得到我的结果 HtmlWeb web = new HtmlWeb(
我知道有一种使用 WebClient 保存图像的方法,但是,我更喜欢使用 HTMLAgility 包,有没有人有一个很好的例子来说明如何做到这一点? 最佳答案 HTML Agility Pack 用于
我尝试使用 htmlagilitypack 来解析表格,完成后我意识到我忘记证明 htmlagility 部分是否有效。...很明显它不起作用我也不知道我错过了什么,我在哪里做错了......因为我是
我读过 HTMLAgility 1.4是抓取网页的一个很好的解决方案。作为一名新程序员,我希望我能对这个项目有所投入。我这样做是作为 C#申请表。我正在使用的页面非常简单。我需要的信息只停留在 2 个
我想确保使用 HtmlAgility 包生成的 HTML 是有效的 HTML5。 例如,下面创建一个空的 HTML5 文档。我将有其他类似的功能来创建更复杂的文档。我想要测试来验证我没有搞砸,并且生成
我正在为网站使用 CMS 系统。我的内容贡献者在系统中放置了一些非常大的图像,然后继续在 cms 中调整它们的大小,以便它们适合页面或文章。当网络用户点击该页面时,他们会下载完整的图像,即使贡献者已经
到目前为止,我正在尝试检索某个网站的 HTML 标记之间的文本.... 例如,我需要提取出这些 span 标签之间的文本,我将如何处理,我收到一条错误消息,指出“对象引用未设置为对象的实例”,这里是
代码可以比我更好地解释这个问题。我还包括了我尝试这样做的替代方法。如果可能,请解释为什么这些其他方法也不起作用。我的想法已经用完了,遗憾的是 HtmlAgilityPack 的例子并不多。不过,我目前
我有一个这样的 html 文件: Some Texts Some Texts 如何获取每个 div id 标签之间的所有文本?我的问题与 WPF 有关。 这是我的代码: private voi
我是一名优秀的程序员,十分优秀!