【发布时间】:2016-03-11 17:16:45
【问题描述】:
我做了一个链接数组
Dim horof As String = "A B C D"
Dim alphabarray As String() = horof.Split(New Char() {" "c})
Dim urls() As String = alphabarray.Select(Function(o) "http://somelink/list-" & o).ToArray()
输出是这样的
http://somelink/list-A
http://somelink/list-B
http://somelink/list-C
http://somelink/list-D
我为每个这样的链接做了webrequest:
For i As Int32 = 0 To urls.Length - 1
Dim wRequest As WebRequest
Dim WResponse As WebResponse
wRequest = FtpWebRequest.Create(urls(i))
WResponse = wRequest.GetResponse
Dim SR As StreamReader
SR = New StreamReader(WResponse.GetResponseStream)
urls(i) = SR.ReadToEnd
Next
现在我有了 urls 字符串数组中所有链接的 html 源代码
我想使用 htmlagilitypack 来selectnodes从数组中的每个 html 源
Dim htmlDoc As New HtmlDocument()
htmlDoc.LoadHtml(urls)
Dim wantednode = htmlDoc.DocumentNode.SelectNodes("Xpath")
但是没有用
我尝试把它放在同一个循环中
Dim htmlDoc As New HtmlDocument()
Dim wantednode As HtmlNodeCollection
For i As Int32 = 0 To urls.Length - 1
Dim wRequest As WebRequest
Dim WResponse As WebResponse
wRequest = FtpWebRequest.Create(urls(i))
WResponse = wRequest.GetResponse
Dim SR As StreamReader
SR = New StreamReader(WResponse.GetResponseStream)
urls(i) = SR.ReadToEnd
htmlDoc.Load(urls(i))
wantednode = htmlDoc.DocumentNode.SelectNodes("Xpath")
next
这也没有用
如何制作wantednode = htmlDoc.DocumentNode.SelectNodes("Xpath")的循环
对于urls 数组中的每个 html 代码
urls数组中的每个html代码都是这样来自
<body>
<div class="list_body">
<ul class="listing">
<li>
<a href="http://wanted1.com" title="">title1 </a>
</li>
<li>
<a href="http://wanted2.com" title="">title2 </a>
</li>
<li>
<a href="http://wanted3.com" title="">title3 </a>
</li>
<li>
<a href="http://wanted4.com" title="">title4 </a>
</li>
<li>
<a href="http://wanted5.com" title="">title5 </a>
</li>
<li>
<a href="http://wanted6.com" title="">title6 </a>
</li>
</ul>
</div>
</body>
我希望http://wanted2.com 链接到urls 中的每个字符串
【问题讨论】:
-
定义“无效”。如果它是公开的,还发布一个代表 URL。我的猜测是你的“Xpath”的 XPATH 模式是假的——这通常是我的错误。
-
在
htmlDoc.Load(urls(i))它发送给我路径中的非法字符 -
@rheitzman 和 Xpath 修复了所有链接,因为当我在单个链接中尝试它时它工作得很好
标签: arrays vb.net loops html-agility-pack