如何使用.net桌面应用程序复制网站的内容[关闭]
Posted
技术标签:
【中文标题】如何使用.net桌面应用程序复制网站的内容[关闭]【英文标题】:how to copy contents of a website using a .net desktop application [closed] 【发布时间】:2012-01-09 09:22:34 【问题描述】:网上有一个网站(这个网站不是我建的),里面有一个网格,而且是分页的,所以跨越了很多页。我想要excel表格中网格每一页的内容。如果我尝试手动操作,这是一种非常麻烦且不太聪明的方式。
那么是否可以使用 c#.net windows 应用程序来做到这一点?
是否有任何免费软件可以帮助我实现这一目标,例如网络爬虫或网络蜘蛛或类似的东西?
【问题讨论】:
LOL 抄袭别人的网站。如果您要这样做,至少要在坚硬的院子里并手动进行-您的业力会略有改善。如果我假设您不会询问原作者是否可以盗用他/她的网站,请原谅我。 @Pete855217 网页抓取是一种非常普遍的做法,并且有很多正当理由这样做。这不是“抄袭”,因为您在互联网上发布的任何内容都是公开的。 【参考方案1】:该术语称为Web Scraping。用代码来实现也不是一件容易的事。
您可以使用HttpWebRequest/HttpWebResponse 类或WebClient 类自行访问和获取页面。然后你可以使用正则表达式或类似html Agility Pack 之类的东西来解析你需要的数据。
至于第三方工具,已经有很多关于 SO 的问题得到解答,但您可以看看这里:What's a good Web Crawler tool
【讨论】:
【参考方案2】:您可以使用 HTMLAgilityPack 之类的东西来使用 C# 获取网页,然后使用 XPath 查询来提取您需要的数据。为了模拟分页,您需要知道格式化查询字符串的正确方法。如果表使用AJAX 进行分页,您可能需要使用一些外部工具/嗅探器来找出正确的 url/查询字符串。我推荐 Firefox 的 Firebug 插件来执行此操作。
通过 XPath 提取 HTML 表格后,您可以使用 XSLT 将其转换为 CSV 格式。使用 Office Interop 从 CSV 将其导入 Excel 非常容易。
【讨论】:
以上是关于如何使用.net桌面应用程序复制网站的内容[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用YouTube Api下载YouTube视频[关闭]