Web-Crawler for VBA

我正在尝试使用Visual Basic编程Webcrawler。 我有一个链接列表,存储在一个Excel(第1列)。 然后,macros应该打开每个链接,并将某些信息从网站添加到Excel文件。 这是第一个链接(存储在字段A2) 。

macros应在第2栏(B2),第3栏(C2)的评分和第4栏(D2)的地址中标识并插入酒店的名称。 这个过程可以重复一个循环,所有其他的链接(所有的网站都有相同的结构)。

我的代码到目前为止(我没有添加循环):

Sub Hoteldetails() Dim IEexp As Object Set IEexp = CreateObject("InternetExplorer.Application") IEexp.Visible = True Range("A2").Select Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True End Sub 

我怎样才能“select”我想要的具体数据,并将其插入到Excel文件? 我试图通过“添加数据”来loggingmacros,但无法从网站导入数据。 我也试图通过使用各种示例代码来做到这一点,但它并没有为我的具体网站。

非常感谢您的帮助!

你有几个select:

选项1:IEObject

要么你需要在IEObject中使用getElementBy方法,并使用string操作来提取所需的数据。 2个string提取选项:

  1. 通过NameId提取顶级元素,然后使用string操作函数,如MidInStrLeftRight
  2. 使用正则expression式(VBA Vbscript对象)来提取数据(推荐)

选项2:抓取HTML加载项

前段时间我开发了一个Excel的AddIn,可以让你轻松地在Excel公式中抓取HTML数据。 该过程与上述类似,因为您仍然需要创build相关的正则expression式。 对于TripAdvisor,请参阅以下示例:

在这里输入图像说明

B2的公式如下所示(A2是链接,第二个参数是正则expression式):

 =GetElementByRegex(A2;"<h1 id=""HEADING"".*?>(?:(?:.|\n)*?)</div>((?:.|\n)*?)</h1>") 

你可以在这里下载AddIn: http ://www.analystcave.com/excel-tools/excel-scrape-html-add/