Как очистить сайт, заполняя формы и «кликая» по ссылкам с R? - PullRequest
0 голосов
/ 12 марта 2012

Я хотел бы поработать в Интернете с исходным кодом html страниц java-скриптов, к которым я не могу получить доступ, не выбрав один вариант в раскрывающемся списке и после «щелчка» по ссылкам.Несмотря на то, что я не был в Java, простой пример может быть таким:

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

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

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

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

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

Ответы [ 2 ]

3 голосов
/ 12 марта 2012

Это можно сделать с помощью python с пакетом selenium .Вот несколько полезных примеров здесь .Мне показалось полезным установить 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 )
2 голосов
/ 12 марта 2012

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

Однако, если вы заинтересованы в изучении Python, приведенный выше пример Celenius в сочетании с beautifulSoup подойдет вам.

...