我正在尝试使用 WatIn 收集超链接列表(它链接到的 url)。我尝试使用:
foreach (Link l in myIE.Links)
{
Links.Add(l.ToString());
}
string LinksCSV = string.Join(",", Links.ToArray());
richTextBox2.Text = LinksCSV;
我正在尝试列出我的richtextbox 中的所有超链接,但是上面返回了超链接名称,因此它一遍又一遍地显示“链接”。
此外,我只需要列出包含“webpage.php?id=”的网址/链接,然后在此之后有一个唯一的编号。如何返回仅由包含“webpage.php?id=”的抓取的 url 过滤?
更新:这是一个更新的测试,可以使用其他站点,但不是我需要的站点。下面的代码有效。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using WatiN.Core;
namespace ScrapeTest
{
class Program
{
[STAThread]
static void Main(string[] args)
{
IE ie = new IE();
ie.GoTo("http://www.freesound.org/browse/tags/organ/");
foreach (var currLink in ie.Links)
{
if (currLink.Url.Contains("sounds"))
{
Console.WriteLine("contains Edit in the link Url" + currLink.Url);
}
}
Console.ReadLine();
}
}
}
该代码似乎是正确的,但是它与我的特定网址和超链接的交互似乎是问题所在。我所关注的网站和超链接包含敏感信息,因此省略了它们。
使用我的网站主页http://website.com脚本运行,所以它有关于我将其发送到http://website.com/data.php?search=%22%22&cat的唯一页面的问题=0 可能是因为网址中的 .php 吗?如果有帮助,URL 也会存储在页面上,如下所示。
td class="alt2">
<a align="center" href="data.php?id=111111">EDIT</a>
/td>
更新和解决方案:由于某种原因,当我尝试使用 Url.Contains 方法时似乎会出现问题。我最终所做的是将每个抓取的 Url 存储到一个列表中,并根据需要逐行测试我的列表以返回所需的 Url。非常感谢你的帮助。