热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

需要的建议:使用.NET屏幕抓取网页-Adviceneeded:Screenscrapingawebpageusing.NET

IneedanadviceforaprojectIamabouttobegin.我需要为即将开始的项目提供建议。Infewwords,myapplicationh

I need an advice for a project I am about to begin.

我需要为即将开始的项目提供建议。

In few words, my application has to go to a certain soccer website, download the HTML and extract the necessary data.

简而言之,我的应用程序必须去某个足球网站,下载HTML并提取必要的数据。

This is what I have done so far:

这是我到目前为止所做的:

:: 1) Go to a certain soccer website (ex. http://www.livescore.com/default.dll?page=england) and download the HTML using WebClient.

:: 1)访问某个足球网站(例如http://www.livescore.com/default.dll?page=england)并使用WebClient下载HTML。

:: 2) Using SgmlReader convert the HTML to XML

:: 2)使用SgmlReader将HTML转换为XML

:: 3) Using XmlDocument retrieve the data I am looking for. Usually this involves:

:: 3)使用XmlDocument检索我要查找的数据。通常这包括:

::::::: 3.1) Retrieving nodes using GetElementsByTagName() (ex. GetElementsByTagName("tr"))

::::::: 3.1)使用GetElementsByTagName()检索节点(例如GetElementsByTagName(“tr”))

::::::: 3.2) Looping through the list of nodes returned by the GetElementsByTagName() method

::::::: 3.2)循环访问GetElementsByTagName()方法返回的节点列表

Is there a better way to do what I trying to do?

有没有更好的方法来做我想做的事情?

I was thinking of LINQ to XML. Do you think this will improve performance?

我在想LINQ to XML。你认为这会改善表现吗?

Any suggestions or comments would be greatly appreciated!

任何建议或意见将不胜感激!

3 个解决方案

#1


Just use HTML Agility Pack! http://www.codeplex.com/htmlagilitypack

只需使用HTML Agility Pack! http://www.codeplex.com/htmlagilitypack

In that way you can query the document using XPath to get the nodes you need. You can even use Firefox's plugin Firebug to help you build your XPath querys

通过这种方式,您可以使用XPath查询文档以获取所需的节点。您甚至可以使用Firefox的插件Firebug来帮助您构建XPath查询

#2


Use a service such as these guys who have most everything done for you. You can also use a free service such as Dapper. I believe you can export data in different formats, although I don't know if you can grab the data in real time, you may have a delay.

使用像这些人一样的服务,他们为您完成了大部分工作。您还可以使用Dapper等免费服务。我相信您可以导出不同格式的数据,虽然我不知道您是否可以实时获取数据,但可能会有延迟。

If you don't want to program everything in-house using a 3rd party solution can save you time and money.

如果您不想使用第三方解决方案在内部编程,可以节省您的时间和金钱。

#3


Once you've converted the data to XML, you can use XSLT to transform it to a simpler set of XML and one that is more suited to your purposes. From there you can use LINQ to XML to get the data you need out of the XML. The benefit to this approach is that it decouples the website from the data gathering so that when the website changes their format you can simply change the XSLT to match and nothing else has to be touched.

将数据转换为XML后,可以使用XSLT将其转换为更简单的XML集,以及更适合您的目的的XML集。从那里,您可以使用LINQ to XML从XML中获取所需的数据。这种方法的好处是它可以将网站与数据收集分离,这样当网站更改格式时,您只需更改XSLT即可匹配,无需其他任何操作。


推荐阅读
  • 使用 Vue 集成 iScroll 实现移动端表格横向滚动与固定列功能 ... [详细]
  • 如何将PHP文件上传至服务器及正确配置服务器地址 ... [详细]
  • 导读:今天编程笔记来给各位分享关于PHP的前端用什么工具的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: ... [详细]
  • 本文总结了一些开发中常见的问题及其解决方案,包括特性过滤器的使用、NuGet程序集版本冲突、线程存储、溢出检查、ThreadPool的最大线程数设置、Redis使用中的问题以及Task.Result和Task.GetAwaiter().GetResult()的区别。 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • 本文探讨了在使用 Outlook 时遇到的一个常见问题:无法加载 SAVCORP90 插件,导致软件功能受限。该问题通常表现为在启动 Outlook 时会收到错误提示,影响用户的正常使用体验。文章详细分析了可能的原因,并提供了多种解决方法,包括检查插件兼容性、重新安装插件以及更新 Outlook 版本等。通过这些步骤,用户可以有效解决这一问题,恢复 Outlook 的正常运行。 ... [详细]
  • 在VS2013中编译FFMPEG时遇到的问题及解决方案
    在使用VS2013编译旧版本FFMPEG库时遇到了一些问题,因为官方并未提供预编译的LIB和DLL文件。由于对Linux环境不熟悉,只能在Windows环境下进行配置和编译。具体步骤如下:首先,下载FFMPEG的源代码;然后,安装必要的编译工具和依赖项;接着,配置Visual Studio 2013的项目设置;最后,解决编译过程中出现的各种错误和警告。通过这些步骤,最终成功编译出所需的FFMPEG库文件。 ... [详细]
  • 2018年9月21日,Destoon官方发布了安全更新,修复了一个由用户“索马里的海贼”报告的前端GETShell漏洞。该漏洞存在于20180827版本的某CMS中,攻击者可以通过构造特定的HTTP请求,利用该漏洞在服务器上执行任意代码,从而获得对系统的控制权。此次更新建议所有用户尽快升级至最新版本,以确保系统的安全性。 ... [详细]
  • 在面试过程中,面试官常常会提问如何使一个DIV元素实现水平和垂直居中。本文将详细介绍几种常用的实现方法。准备工作包括创建一个父容器和一个子容器,通过不同的CSS属性和技术手段,如Flexbox、Grid布局、绝对定位等,来实现DIV元素的精确居中效果。每种方法都有其适用场景和优缺点,读者可以根据具体需求选择最适合的方案。 ... [详细]
  • 在HTML5应用中,Accordion(手风琴,又称抽屉)效果因其独特的展开和折叠样式而广泛使用。本文探讨了三种不同的Accordion交互效果,通过层次结构优化信息展示和页面布局,提升用户体验。这些效果不仅增强了视觉效果,还提高了内容的可访问性和互动性。 ... [详细]
  • 探索聚类分析中的K-Means与DBSCAN算法及其应用
    聚类分析是一种用于解决样本或特征分类问题的统计分析方法,也是数据挖掘领域的重要算法之一。本文主要探讨了K-Means和DBSCAN两种聚类算法的原理及其应用场景。K-Means算法通过迭代优化簇中心来实现数据点的划分,适用于球形分布的数据集;而DBSCAN算法则基于密度进行聚类,能够有效识别任意形状的簇,并且对噪声数据具有较好的鲁棒性。通过对这两种算法的对比分析,本文旨在为实际应用中选择合适的聚类方法提供参考。 ... [详细]
  • 【Adobe Photoshop CC 安装指南】详细步骤教你如何下载、安装与激活Photoshop
    【Adobe Photoshop CC 安装指南】详细步骤教你如何下载、安装与激活Photoshop ... [详细]
  • 在Unity3D中,获取游戏对象有多种实用技巧和方法。除了常见的序列化变量拖拽方式外,还可以使用 `GameObject.Find()` 方法通过对象名称或路径来直接获取游戏对象。此外,`Transform.Find()` 和 `GameObject.FindWithTag()` 也是常用的手段,分别适用于通过层级结构和标签来查找游戏对象。这些方法各有优劣,开发者可以根据具体需求选择最合适的方式。 ... [详细]
  • 期末Web开发综合实践项目:运用前端技术打造趣味小游戏体验
    期末Web开发综合实践项目中,学生通过运用HTML、CSS和JavaScript等前端技术,设计并实现了一款趣味性十足的小游戏。该项目不仅检验了学生对前端基础知识的掌握情况,还提升了他们的实际操作能力和创意设计水平。视频链接展示了项目的最终成果,直观呈现了游戏的互动性和视觉效果。 ... [详细]
  • 开发工具WebDeveloper1.1.8https:addons.mozilla.orgen-USfirefoxaddon60以工具栏的形式对网页的(X)HTML、脚本、多媒体、 ... [详细]
author-avatar
ShenTing止想念
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有