2

我正在研究一个项目,即 Google Scholar 的论文分析。我所做的基本上是解析 HTML,将相关字段存储到数据库中等。但是,我被困在一个点上,当我获取出版物的标题时,我意识到,我能够获得前 20 个元素。但是,相关帐户中有六十篇论文:

http://scholar.google.com/citations?user=B7vSqZsAAAAJ

所以,我认为作为一种解决方案,我需要以编程方式单击“显示更多”按钮,这样我就可以拥有所有的标题、出版地点等。

你怎么看?我怎样才能执行这种操作?

编辑:我检查了“显示更多”按钮,虽然没有什么可以显示为下一页,但它的 html 代码仍然保持不变。作为一种解决方案,我可以使用循环 n 次。但是,我正在寻找更强大的解决方案。感谢您的时间!

4

2 回答 2

1

如果它在 Windows 窗体应用程序上单击 WebBrowser 控件中的按钮,则“是”您可以这样做。有一些方法可以通过使用 XPath 来更好地控制标识。

(您可能需要使用 Javascript 来使用 XPath 进行对象交互 - 因为您没有要求,所以我假设您不需要它)

webBrowser.Navigate("http://www.google.com");

//   Or

HtmlElement textElement = webBrowser.Document.All.GetElementsByName("q")[0];
textElement.SetAttribute("value", "your text to search");
HtmlElement btnElement = webBrowser.Document.All.GetElementsByName("btnG")[0];
btnElement.InvokeMember("click");

甚至在文本框中输入

webBrowser1.Document.GetElementById("gs_tti0").InnerText = "hello world";
于 2016-01-26T11:07:30.233 回答
0

如果是这个网站,有一个简单的解决方法。将查询字符串更改为您想要的记录。

http://scholar.google.com/citations?user=B7vSqZsAAAAJ &cstart=0&pagesize=2000

于 2014-12-08T08:57:12.177 回答