2014-12-08 57 views
1

我正在研究一項來自Google Scholar的論文分析的項目。我所做的基本上是解析HTML,將相關字段存儲到數據庫等。但是,當我拿着出版物的標題,我意識到,我能夠獲得前20個元素。不過,也有相關的帳戶60篇論文:以編程方式單擊Windows窗體應用程序中的網頁按鈕

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

所以,我覺得作爲一個解決方案,我需要點擊「顯示更多」按鈕編程,這樣我就可以擁有所有的標題的,出版地點等等。

你覺得呢?我如何執行這種操作?

編輯:我檢查了'顯示更多'按鈕,雖然沒有什麼可以顯示爲下一頁,但它的html代碼仍然保持不變。作爲一種解決方案,我可以循環使用n次。不過,我正在尋找更強大的解決方案。 謝謝你的時間!

回答

0

如果它的這個網站具體,有一個簡單的解決方法。將查詢字符串更改爲您想要的記錄。

http://scholar.google.com/citations?user=B7vSqZsAAAAJ& CSTART = 0 &頁面大小= 2000

+0

嗯,這是一個不錯的嘗試=)。不過,您可以查看Google Scholar中的Richard Feynman的161篇論文。用你的近似值,我可以看到1到100 ... – Elesmoth 2014-12-08 09:01:01

+0

糟糕,看起來像他們限制頁面大小。 我使用fiddler進行了檢查,只有點擊< or >時有更新cstart querystring的GET請求。它可能需要一點調整,但應該運作良好。其他網站也是如此,它支持分頁。 – 2014-12-08 09:22:30

0

如果點擊在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"; 
相關問題