【发布时间】:2014-07-22 18:10:57
【问题描述】:
我的任务是简化从特定在线网站收集数据并将其导入 Excel 2010 电子表格的流程。网站是“Web of Science”,http://apps.webofknowledge.com/UA_GeneralSearch_input.do?product=UA&SID=T2b1MtfKgCqeB2h9j9J&search_mode=GeneralSearch,这是一个详细介绍学术出版物和期刊的网站。
目前他们正在访问网站,输入少量搜索参数,然后手动记录网页中的相关数据。他们希望能够在 Excel 中输入关键字(充当搜索项),然后自动执行其余过程并为他们提供所需数据的电子表格。
然而,他们需要的数据以输入出版物名称的潜在作者列表的形式出现,该列表目前作为“优化结果”下的复选框选择出现在网站上:http://apps.webofknowledge.com/RAMore.do?product=UA&search_mode=GeneralSearch&SID=T2b1MtfKgCqeB2h9j9J&qid=5&ra_mode=more&ra_name=Author&colName=&viewType=raMore
所以基本上我需要用户能够在 Excel 中输入他们将在网站上的搜索字段中输入的搜索项,然后将与该主题相关的作者列表导入电子表格。
这可能吗?也许通过在 Excel 中使用 VBA 代码?
人们会推荐什么?我真的只是一个 Excel 新手,但确实有编程经验。
非常感谢您的帮助,
约翰
*仅供参考,更新,这是我目前所拥有的,只要用户输入一个单词,然后由网站搜索工具进行搜索。现在需要获取作者并将其导入电子表格:
Sub WoS()
Dim IE As Object
Dim Doc As Object
Set IE = CreateObject("internetexplorer.application")
IE.Visible = True
navigate:
' navigate to the relevant website
IE.navigate "http://apps.webofknowledge.com/UA_GeneralSearch_input.do? product=UA&search_mode=GeneralSearch&SID=T23ZytENYQRHyJkmixB&preferencesSaved="
' wait until page has finished loading
Do While IE.readystate <> 4: DoEvents: Loop
Set Doc = CreateObject("htmlfile")
Set Doc = IE.document
If Doc Is Nothing Then GoTo navigate
' allow user to input keywords for search
Set myInput = Doc.getelementbyid("value(input1)")
myInput.Value = InputBox("Please enter the subject for Publication Name: ")
' click button to process search
Set btnSubmit = Doc.getelementbyid("UA_GeneralSearch_input_form_sb")
btnSubmit.Click
End Sub
【问题讨论】: