当前位置: 首页 > 知识库问答 >
问题:

C#scraping项目中的一个scraping问题

罗学林
2023-03-14

祝大家今天过得愉快!我对c#的建筑废料项目还不熟悉。现在我正试图从一个网站上抓取标签href属性的内容。但还不能得出好的结论!以下是网页的结构:

<table class="matches date_matches grouped">
    <thead></thead>
    <tbody>
        <tr id="date_matches-16-53658" class="group-head clickable" stage-value="212">
            <th colspan="5">
            </th>
            <th class="competition-link">
             <a href="/national/south-africa/psl/20192020/regular-season/r53038/"><span>More…</span></a>
            </th>
        </tr>
        <tr id="xxx">
            ...
        </tr>
    </tbody>
</table>

我将删除href url链接字符串的内容(此处:“/national/南非/psl/20192020/regular seasure/r53038/”)。这是我的c#scraping项目:

using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
...
IWebDriver driver = new ChromeDriver();
driver.Navigate().GoToUrl("https://....");
ReadOnlyCollection<IWebElement> alinks = driver.FindElements(By.XPath("//td[@class='score-time']/a[contains(@href, 'south-africa')]"));

我尝试了其他一些方法来删除href属性的内容。但仍然没有得到正确的结果。谢谢你的忠告!!!

共有2个答案

杭柏
2023-03-14

试试这个

var linkList = new List<string>();
var links = Driver.FindElements(By.CssSelector("a"));
var linkList = linkList.AddRange(links.Select(link => link.GetAttribute("href")));
郏扬
2023-03-14

请尝试此代码,它将帮助您。

public string FindHref()
{
     string href = string.Empty;
     List<IWebElement> anchors = driver.FindElements(By.TagName("a")).ToList();
     for (int i = 0; i < anchors.Count; i++)
     {
         href = anchors[i].GetAttribute("href");
     }
     return href;
}
 类似资料:
  • 我使用MFC和对话框创建了两个独立的可执行文件项目。 我是visual studio的新手,所以请给出一些建议。谢谢

  • 我的应用程序可以正常编译,但出现以下运行时错误: 调用应用程序中对包装器的引用看起来是正确的。包装器dll存在于正确的位置。 这个项目曾经在别人的系统上构建和运行,我看了几次演示。那个人/电脑不再可用。自上次成功构建并运行以来,某些依赖项的某些路径已经更改,我已经修复了与此相关的所有编译错误。 为了澄清我的项目结构: 包装器是围绕C库的C /CLI包装器。当我们试图在应用程序中加载一个类时,会触发

  • 我正在构建一个定制的Java库。我把我的大部分“重复”代码都保存在那里,比如文件处理、字符串处理等。每次我想使用它们时,我都必须将该类复制并粘贴到我正在进行的其他项目中。有没有办法让这个自定义库类成为“依赖项”?我在用我的智能手机。

  • 首先,打开Android Studio并选择Create new Project,然后它会让你输入一个名字,你可以任意取一个名字,比如:Weather App。然后你需要输入公司域名。如果你不会真正发布这个app,这个字段就不是特别重要了,但是如果你有的话可以使用自己的域名。然后任意选择一个目录作为这个项目的保存地址。 下一步,它会让你选择最小的API版本。我们选择API 15,因为我们有一个库需

  • java.sql.sqlException:在java.sql.driverManager.getConnection(未知源)在java.sql.driverManager.getConnection(未知源)在modelo.datosdao.baja(datosdao.java:44)在control.securalia.baja(securalia.java:43)等处没有找到合适的驱动程序

  • 我有一个包含5个项目的BottomNavigationBar。除了名称和图标,第一个项目与其他项目相同。这是bottom_nav菜单的xml 这是用于图标的绘图的xml 最后,这是我用于Bar本身的xml 其余可绘图项的xml完全相同(它们使用不同的图标,但这与xml本身无关)。但是,名称_配置项在底部导航栏中不可见。单击时,它的行为与其他项目相同(它们传递SharedReferences值并移动