我有一个循环遍历vb.net中的一组链接的函数:
For Each category As HtmlElement In fs.cats
fs.run_fetch(category)
outToCSV(fs.results, "C:\Data\test.csv")
outToCSV(fs.errors, "C:\Data\errors.csv")
Next
它适用于第一个循环,但一旦进入第二个循环,fs.run_fetch(类别)就会给我 *访问被拒绝。 (尝试运行以下内容时,HRESULT异常:0x80070005(E_ACCESSDENIED))*
Public Sub run_fetch(ByVal category As HtmlElement)
Dim itemsonpage As HtmlElementCollection
Dim title, id, salePrice, regPrice As String
Dim numberOnSale, currentPage As Integer
'navigate to category page
loadPage(category.GetAttribute("href")) **<- error here**
答案 0 :(得分:1)
对于某些人来说,这可能是显而易见的,但是在vb.net中定义为HTMLElement或HTMLElementCollection的变量始终是引用。
因此,当您导航到另一个页面时,对变量的引用将丢失(即您的变量引用的网页不再存在于“内存中”并且引用已经过时了)
我的解决方案是将链接(我从网页上删除的网址)保存到一个列表(字符串)中,因此他们不再引用该页面并在内存中直到您清除它为止。