2012-03-11 4 views
0

Я хотел бы web-scrape исходный код html java-script-страниц, который я не могу получить, не выбрав один из вариантов в раскрывающемся списке, а затем, щелкнув по ссылкам. Злоба не в Java, простой пример, может быть это:Как очистить веб-сайт, заполняя формы и «щелкая» по ссылкам с помощью R?

Веб-скрести основные страницы Википедии на всех языках, доступных в раскрывающемся списке в нижней части этого URL: http://www.wikipedia.org/

Чтобы сделать это, , Мне нужно выбрать один язык, например, английский, а затем нажать «на» ссылку «Главная страница» в левой части нового URL-адреса (http://en.wikipedia.org/wiki/Special:Search?search= & go = Go).

После этого шага я очистил исходный код html главной страницы wikipedia на английском языке.

Есть ли способ сделать это с помощью R? Я уже пробовал RCURL и XML-пакеты, но он плохо работает с javascript-страницей.

Если это невозможно с помощью R, может ли кто-нибудь сказать мне, как это сделать с помощью python?

+1

Я не знаю, почему кто-то понизил вопрос без комментариев. На самом деле я начинаю в программировании R, и после ответов celenius я начинаю изучать Python. Я был бы признателен, если бы вопрос был неясным или если он не показал каких-либо исследований. –

ответ

2

Это можно сделать с помощью python с пакетом selenium. Есть несколько полезных примеров here. Я нашел полезным установить Firebug, чтобы я мог идентифицировать элементы на странице. Существует также плагин Selenium Firefox с интерактивным окном, которое тоже может помочь.

import sys 
import selenium 
from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 

driver = webdriver.Firefox() 
driver.get("http://website.aspx")  

elem = driver.find_element_by_id("ctl00_ctl00") 
elem.send_keys('15') 
elem.send_keys(Keys.RETURN) 
+0

celenius, на самом деле я не использую python. Знаете ли вы какую-либо материальную ссылку для новичков? –

1

Посмотрите на пакеты RCurl и XML для размещения информации о форме на веб-сайте и последующей обработки данных. RCurl довольно круто, но у вас может быть проблема с разбором HTML, потому что, если он не соответствует стандартам, пакет XML может не понравиться.

Если вы заинтересованы в изучении Python, то пример Celenius выше в сочетании с beautifulSoup будет тем, что вам нужно.