C# 从html C检索某些href链接#
我对如何从HTML页面中提取特定的C# 从html C检索某些href链接#,c#,html,parsing,web-crawler,href,C#,Html,Parsing,Web Crawler,Href,我对如何从HTML页面中提取特定的href链接有点困惑。当然有很多例子,但它们似乎涵盖了收集href(当页面上只有一个链接时)或收集所有链接 因此,我目前使用HttpWebRequest、HttpWebResponse和StreamReader将HTML文档推送到文本文件中 这是我正在使用的小示例,它只是下载我选择的URL并将其保存到文本文件中 protected void btnURL_Click(object sender, EventArgs e) { string url = t
href
链接有点困惑。当然有很多例子,但它们似乎涵盖了收集href
(当页面上只有一个链接时)或收集所有链接
因此,我目前使用HttpWebRequest
、HttpWebResponse
和StreamReader
将HTML文档推送到文本文件中
这是我正在使用的小示例,它只是下载我选择的URL并将其保存到文本文件中
protected void btnURL_Click(object sender, EventArgs e)
{
string url = txtboxURL.Text;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader sr = new StreamReader(response.GetResponseStream());
//lblResponse.Text = sr.ReadToEnd();
string urldata = sr.ReadToEnd();
if (File.Exists(@"C:\Temp\test.txt"))
{
File.Delete(@"C:\Temp\test.txt");
}
File.Create(@"C:\Temp\test.txt").Close();
File.WriteAllText(@"C:\Temp\test.txt", urldata);
sr.Close();
response.Close();
}
我可以在整个文本文件中搜索href
,但每页上都有很多,我要查找的内容被划分在
标记中,然后它们都位于同一类的
标记中,有点像这样:
<nav class="deptVertNav>
<div class="acTrigger">
<a href="*this is what I need to get*" ....
....
</a>
</div>
<div class="acTrigger">
<a href="*etc*" ....
....
</a>
</div>
<div class="acTrigger">
<a href="*etc*" ....
....
</a>
</div>
</nav>
下一个问题是如何进入
标记并进入
标记,然后检索href
值并存储它 我建议将HTML放在HtmlDocument控件()或WebBrowser控件()中,而不是尝试手动解析文本文件。这允许您访问已解析的元素。从那里,您可以轻松找到所有具有适当类的DIV元素,然后找到其中的A元素。查看库。然后根据需要抓取URL
IWebElement anchorUrl1 = driver.FindElement(By.XPath("//nav[@class='deptVertNav']/div[1]/a[1]"));
string urlText1 = anchorUrl1.Text;
IWebElement anchorUrl2 = driver.FindElement(By.XPath("//nav[@class='deptVertNav']/div[2]/a[1]"));
string urlText2 = anchorUrl2.Text;
如果您只需单击它们,则:
driver.FindElement(By.XPath("//nav[@class='deptVertNav']/div[1]/a[1]")).Click();
driver.FindElement(By.XPath("//nav[@class='deptVertNav']/div[1]/a[1]")).Click();