Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.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
Programming languages 什么是最好的屏幕抓取语言?_Programming Languages_Screen Scraping_Web Scraping - Fatal编程技术网

Programming languages 什么是最好的屏幕抓取语言?

Programming languages 什么是最好的屏幕抓取语言?,programming-languages,screen-scraping,web-scraping,Programming Languages,Screen Scraping,Web Scraping,嗨,我想创建一个桌面应用程序(c#prob),它可以在第三方网页上刮取或操纵表单。基本上,我在桌面应用程序的表单中输入我的数据,它会转到第三方网站,并在后台使用脚本或任何东西,在那里输入我的数据(包括我的登录),然后为我单击提交按钮。我只想避免加载浏览器 由于在这方面没有做太多(任何!)工作,我想知道perl、python、ruby等脚本语言是否允许我这样做?或者干脆用c#和.net来完成所有的刮削?哪一个是最好的IYO 我认为脚本可能需要从不同平台上的应用程序(例如symbian mobile

嗨,我想创建一个桌面应用程序(c#prob),它可以在第三方网页上刮取或操纵表单。基本上,我在桌面应用程序的表单中输入我的数据,它会转到第三方网站,并在后台使用脚本或任何东西,在那里输入我的数据(包括我的登录),然后为我单击提交按钮。我只想避免加载浏览器

由于在这方面没有做太多(任何!)工作,我想知道perl、python、ruby等脚本语言是否允许我这样做?或者干脆用c#和.net来完成所有的刮削?哪一个是最好的IYO

我认为脚本可能需要从不同平台上的应用程序(例如symbian mobile,在那里我无法像在桌面版那样用c#开发它)连接到同一个脚本中


它不是一个网络应用程序,否则我也可以使用原来的网站。我意识到这一切听起来毫无意义,但对我来说,这个特定表单的自动化将是一个实时节约。

IMO Perl内置的正则表达式功能和操作文本的能力将使它成为屏幕抓取的一个很好的竞争者。

PHP是一个很好的竞争者,因为它的良好特性和

C#非常适合你的屏幕抓取需要。NET的正则表达式功能非常好。然而,有了这样一个简单的任务,你将很难找到一种语言不做你想要的相对容易。考虑到你已经在用C#编程了,我想说的是坚持下去

内置屏幕抓取功能也是一流的。

请勿忘记查看,强烈推荐

例如,请参见。 如果您需要为此任务选择一种编程语言,我会说
Python

您的问题的一个更直接的解决方案,请参阅,一种用于Web浏览的简单脚本语言。

我使用C#来进行抓取。请参阅有用的软件包。 对于解析页面,我使用XPATH或正则表达式。NET还可以轻松处理cookies,如果您需要的话


我已经编写了一个小类,它封装了创建WebRequest、发送WebRequest、等待响应、保存Cookie、处理网络错误和重新传输等所有细节。最终的结果是,在大多数情况下,我可以调用“GetRequest\PostRequest”并获取HtmlDocument

您可以尝试使用.NET HTML敏捷包:

“这是一个敏捷的HTML解析器,可构建读/写DOM,并支持纯XPATH或XSLT(您实际上不必理解XPATH或XSLT即可使用它,不用担心……)。它是一个.NET代码库,允许您解析“web外”HTML文件。解析器对“真实世界”非常宽容“格式错误的HTML。对象模型与System.Xml非常相似,但适用于HTML文档(或流)。”


或者使用C#中的WebClient和一些字符串操作。

Ruby非常棒!。。。 试试它的hpricot/mechanize

Groovy非常好

例如:

Groovy和HtmlUnit也是一个很好的搭配: Htmlunit将模拟支持Javascript的完整浏览器。

  • XPath被破坏了,清除html以使其与xml兼容的方式会删除标记,您必须调整表达式以使其工作
  • 简单易用
  • 可靠的XPath支持

  • 您必须先设置环境变量,然后它才能工作,这是一个难题

  • 在org.dom4j.Node和org.w3c.dom.Node之间转换以获得不同的属性是一件非常痛苦的事情

  • 死在非标准html上(0.3修复了此问题)

  • XPath的最佳解决方案

  • 访问节点列表中节点上的数据时出现问题


    使用a(int i=1;i<p>)第二次推荐Python(或漂亮的汤)。我目前正处于Python的小屏幕擦除项目的中间,Python 3自动处理Cookie身份验证(通过CookieJar和URLLIB)之类的东西。Python支持您可能需要的所有更高级的功能(如正则表达式),并且能够快速处理此类项目(在处理低级内容时不会有太多开销)。它还相对跨平台。

    我们将Groovy与NekoHTML结合使用。(还请注意,您现在可以在Google App Engine上运行Groovy。)

    下面是Keplar博客上的一些可运行代码示例:


    看看HP的Web语言(以前称为WEBL)


    这是一个关于网页抓取而不是屏幕抓取的问题。请重新标记。添加了网页抓取标签。未删除屏幕抓取标签。