C# 多线程web刮板的最佳解决方案?
首先,我不需要代码,如果你问我,那是不礼貌的。我只需要知道实现这一目标的最佳方法。我正在尝试制作一个工具,根据Ask.Fm个人资料的url下载每个可能的照片答案 我认为最好的解决方案需要一两个异步线程,我还不确定 第一根线 选项A:此线程应该从配置文件页面获取链接,并将它们推送到C# 多线程web刮板的最佳解决方案?,c#,regex,multithreading,list,webbrowser-control,C#,Regex,Multithreading,List,Webbrowser Control,首先,我不需要代码,如果你问我,那是不礼貌的。我只需要知道实现这一目标的最佳方法。我正在尝试制作一个工具,根据Ask.Fm个人资料的url下载每个可能的照片答案 我认为最好的解决方案需要一两个异步线程,我还不确定 第一根线 选项A:此线程应该从配置文件页面获取链接,并将它们推送到列表中。当它完成处理页面时,它会模拟一个按钮单击(“查看更多”)并继续搜索其他链接,以此类推(没有第2页,当您单击该按钮时,AJAX脚本会向页面添加元素) 选项B:也许这个线程应该先模拟大量的点击,直到按钮消失,当你找到
列表中。当它完成处理页面时,它会模拟一个按钮单击(“查看更多”)并继续搜索其他链接,以此类推(没有第2页,当您单击该按钮时,AJAX脚本会向页面添加元素)
选项B:也许这个线程应该先模拟大量的点击,直到按钮消失,当你找到一年前的答案时。然后使用一个foreach
和Regex
过滤器,就可以轻松获得所有链接。但是使用这个选项,我不会尽快获得链接,相反,我会在点击作业结束时获得所有链接,这需要时间,因为我认为您必须等待几毫秒,以避免错误调用按钮过快
使用OnAdd
事件创建一个自定义列表
将允许处理来自第一个线程的每个链接,或者使用标准列表每5秒检查一次可能会更容易,我不知道。我甚至不知道我是否应该使用数组(我来自C++)
我应该使用一个单独的线程和所有这些列表
东西来下载吗
第一个线程得到的所有链接,或者这是愚蠢的
我找到链接后就可以下载了?那不是吗
内存太贵李>
我确信我至少需要一个异步线程。我不希望表单冻结到脚本结束。但我不知道什么是最好的多线程选项。你有什么建议李>
我是否应该使用列表
?使用OnAdd事件的自定义列表?阵列李>
最重要的是:你知道实现这一切的其他更好的方法吗
提前谢谢你,Neflux
您可能应该尽快获得所有链接。如果
您的目标曾经从ask.fm变为其他目标,而不是
在处理过程中,所有链接都可能导致页面更改
你的链接可能会导致重复和其他问题
您可以使用一个或两个后台工作人员:
我个人喜欢系统.Collections.Generic.List
。我会的
不一定要做某件事,但这取决于你自己
如果你想要一些现成的东西,你可以看看和服,
Portia
,import.io
如果您想变得非常聪明,可以模拟从ajax调用中推送的数据。使用Wireshark之类的工具来解决这个问题
主要是我没有名声,所以我在这里有一些经验,所以我回答。你有没有仔细研究过这个问题?它有利于通过集合进行并行化和枚举。@MatthewHaugen我将对此进行研究。谢谢,听起来不错。我是最近才知道这件事的,反正是在过去的四五个月里,但我发现它确实让很多任务(双关语?)比其他任务容易得多。检查一下:非常感谢@Noseratio,会很有用的。