Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/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
C# HtmlAlityPack和XPath目标_C#_Xpath_Web Scraping_Html Agility Pack - Fatal编程技术网

C# HtmlAlityPack和XPath目标

C# HtmlAlityPack和XPath目标,c#,xpath,web-scraping,html-agility-pack,C#,Xpath,Web Scraping,Html Agility Pack,我有以下HTML: <table> <tr> <td><a href="#">Tournament Name</a> <br /> Tournament Address </td> </tr> <tr> <td><a>View Available Space and Book Onli

我有以下HTML:

<table>
    <tr>
        <td><a href="#">Tournament Name</a>
            <br /> Tournament Address </td>
    </tr>

    <tr>
        <td><a>View Available Space and Book Online</a></td>
    </tr>

    <tr>
        <td>
            <em>Event Cost:</em> $$$
        </td>

        <td> Date and Time </td>
    </tr>

    <tr>

        <td>
            <p>
                <strong>
                    <img title="Boy's Teams can enter this tournament" />
                    <img  title="Girl's Teams can not enter this tournament" />
                    <img  title="Disabled Teams can not enter this tournament" />
                </strong>
            </p>
        </td>

        <td>
            TimeFrame
        </td>

    </tr>

     <tr>
       <td>
            <img src="image.gif" />
            <img src="image.gif" />
            <img src="image.gif" />
            <img src="image.gif" />
            <img src="image.gif" />
            <img src="image.gif" />
            <img src="image.gif" />
            <img src="image...." />
            <img src="image...." />
            <img src="image...." />
            <img src="image...." />
        </td>
    </tr>
</table>


比赛地址 查看可用空间并联机预订 活动费用:$$$ 日期和时间
(此表在页面上重复多次)

我正在尝试提取锦标赛名称。

我有以下C#代码:

namespace AcademyScraper
{
公共部分类Main:表单
{
公用干管()
{
初始化组件();
}
私有void saveBtn_单击(对象发送方,事件参数e)
{
字符串url=”http://www.reddishvulcans.com/uk_tournament_database.asp";
var Webget=new HtmlWeb();
var doc=Webget.Load(url);
var root=doc.DocumentNode;
var nodes=root.subjects();
HtmlNodeCollection tableCollection=doc.DocumentNode.SelectNodes(“//div[@class='infobox']/table”);
对于(Int32 i=0;i

我遇到的问题是,无论我尝试什么,我似乎都无法瞄准包含锦标赛名称的标记。如果我执行
MessageBox.Show(tableCollection[I].OuterHTML),表内容将在messagebox内呈现良好,不会出现任何问题。但是,每当我尝试获取tournamentName时,都会出现引用异常。基于HTML,我认为它应该是正确的。

您有一项任务,即使用网络
var doc=Webget.Load(url)它可以使一些时间,但你得到它在
主线程
->冲突。您需要在其他线程中运行网络任务。注意
MessageBox.Show(tournamentName.InnerText)
是UI线程(主线程),您应该在
INVOKE
delegate中运行它。

也许您可以尝试类似的方法(我创建了一个控制台应用程序来尝试):


以下XPath对我来说似乎很好:

//div[@class='infobox']/table/tr/td[br]/a
string url = "http://www.reddishvulcans.com/uk_tournament_database.asp";
var Webget = new HtmlWeb();
var doc = Webget.Load(url);

//print top 10 result just for the sake of demo
var result = doc.DocumentNode
                .SelectNodes("//div[@class='infobox']/table/tr/td[br]/a")
                .Take(10);
foreach (HtmlNode node in result)
{
    Console.WriteLine(node.InnerText);
}
The North West Junior Champions League 2016
PLAY AT CHELSEA - STAMFORD BRIDGE FOOTBALL TOURNAMENT 2016
PLAY AT FC BARCELONA -  CAMP NOU FOOTBALL TOUR 2016 - THE EUROPA CUP
Silverdale Soccersevens XIX
NORTH HALIFAX MINI SOCCER TOURNAMENT 2016
Halton & District JFL Mini Soccer Tournament
Colwyn Bay FC Junior Tournament
GMCJFC Pat Mangan Festival of Football 2016
Fred England Trophy
Fred England Trophy
控制台应用程序演示:

//div[@class='infobox']/table/tr/td[br]/a
string url = "http://www.reddishvulcans.com/uk_tournament_database.asp";
var Webget = new HtmlWeb();
var doc = Webget.Load(url);

//print top 10 result just for the sake of demo
var result = doc.DocumentNode
                .SelectNodes("//div[@class='infobox']/table/tr/td[br]/a")
                .Take(10);
foreach (HtmlNode node in result)
{
    Console.WriteLine(node.InnerText);
}
The North West Junior Champions League 2016
PLAY AT CHELSEA - STAMFORD BRIDGE FOOTBALL TOURNAMENT 2016
PLAY AT FC BARCELONA -  CAMP NOU FOOTBALL TOUR 2016 - THE EUROPA CUP
Silverdale Soccersevens XIX
NORTH HALIFAX MINI SOCCER TOURNAMENT 2016
Halton & District JFL Mini Soccer Tournament
Colwyn Bay FC Junior Tournament
GMCJFC Pat Mangan Festival of Football 2016
Fred England Trophy
Fred England Trophy
输出:

//div[@class='infobox']/table/tr/td[br]/a
string url = "http://www.reddishvulcans.com/uk_tournament_database.asp";
var Webget = new HtmlWeb();
var doc = Webget.Load(url);

//print top 10 result just for the sake of demo
var result = doc.DocumentNode
                .SelectNodes("//div[@class='infobox']/table/tr/td[br]/a")
                .Take(10);
foreach (HtmlNode node in result)
{
    Console.WriteLine(node.InnerText);
}
The North West Junior Champions League 2016
PLAY AT CHELSEA - STAMFORD BRIDGE FOOTBALL TOURNAMENT 2016
PLAY AT FC BARCELONA -  CAMP NOU FOOTBALL TOUR 2016 - THE EUROPA CUP
Silverdale Soccersevens XIX
NORTH HALIFAX MINI SOCCER TOURNAMENT 2016
Halton & District JFL Mini Soccer Tournament
Colwyn Bay FC Junior Tournament
GMCJFC Pat Mangan Festival of Football 2016
Fred England Trophy
Fred England Trophy