Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 多线程web刮板的最佳解决方案?_C#_Regex_Multithreading_List_Webbrowser Control - Fatal编程技术网

C# 多线程web刮板的最佳解决方案?

C# 多线程web刮板的最佳解决方案?,c#,regex,multithreading,list,webbrowser-control,C#,Regex,Multithreading,List,Webbrowser Control,首先,我不需要代码,如果你问我,那是不礼貌的。我只需要知道实现这一目标的最佳方法。我正在尝试制作一个工具,根据Ask.Fm个人资料的url下载每个可能的照片答案 我认为最好的解决方案需要一两个异步线程,我还不确定 第一根线 选项A:此线程应该从配置文件页面获取链接,并将它们推送到列表中。当它完成处理页面时,它会模拟一个按钮单击(“查看更多”)并继续搜索其他链接,以此类推(没有第2页,当您单击该按钮时,AJAX脚本会向页面添加元素) 选项B:也许这个线程应该先模拟大量的点击,直到按钮消失,当你找到

首先,我不需要代码,如果你问我,那是不礼貌的。我只需要知道实现这一目标的最佳方法。我正在尝试制作一个工具,根据Ask.Fm个人资料的url下载每个可能的照片答案

我认为最好的解决方案需要一两个异步线程,我还不确定

第一根线

选项A:此线程应该从配置文件页面获取链接,并将它们推送到
列表中。当它完成处理页面时,它会模拟一个按钮单击(“查看更多”)并继续搜索其他链接,以此类推(没有第2页,当您单击该按钮时,AJAX脚本会向页面添加元素)

选项B:也许这个线程应该先模拟大量的点击,直到按钮消失,当你找到一年前的答案时。然后使用一个
foreach
Regex
过滤器,就可以轻松获得所有链接。但是使用这个选项,我不会尽快获得链接,相反,我会在点击作业结束时获得所有链接,这需要时间,因为我认为您必须等待几毫秒,以避免错误调用按钮过快

使用
OnAdd
事件创建一个自定义
列表
将允许处理来自第一个线程的每个链接,或者使用标准列表每5秒检查一次可能会更容易,我不知道。我甚至不知道我是否应该使用数组(我来自C++)

  • 我应该使用一个单独的线程和所有这些
    列表
    东西来下载吗 第一个线程得到的所有链接,或者这是愚蠢的 我找到链接后就可以下载了?那不是吗 内存太贵
  • 我确信我至少需要一个异步线程。我不希望表单冻结到脚本结束。但我不知道什么是最好的多线程选项。你有什么建议
  • 我是否应该使用
    列表
    ?使用OnAdd事件的自定义列表?阵列
  • 最重要的是:你知道实现这一切的其他更好的方法吗
  • 提前谢谢你,Neflux

  • 您可能应该尽快获得所有链接。如果 您的目标曾经从ask.fm变为其他目标,而不是 在处理过程中,所有链接都可能导致页面更改 你的链接可能会导致重复和其他问题

  • 您可以使用一个或两个后台工作人员:

  • 我个人喜欢
    系统.Collections.Generic.List
    。我会的 不一定要做某件事,但这取决于你自己

  • 如果你想要一些现成的东西,你可以看看和服,
    Portia
    import.io

  • 如果您想变得非常聪明,可以模拟从ajax调用中推送的数据。使用Wireshark之类的工具来解决这个问题


    主要是我没有名声,所以我在这里有一些经验,所以我回答。

    你有没有仔细研究过这个问题?它有利于通过集合进行并行化和枚举。@MatthewHaugen我将对此进行研究。谢谢,听起来不错。我是最近才知道这件事的,反正是在过去的四五个月里,但我发现它确实让很多任务(双关语?)比其他任务容易得多。检查一下:非常感谢@Noseratio,会很有用的。