Web Scraping (в R?) - PullRequest
       46

Web Scraping (в R?)

2 голосов
/ 29 апреля 2011

Я хочу получить названия компаний в средней колонке этой страницы (выделены жирным шрифтом синим цветом), а также указатель местоположения человека, который регистрирует жалобу (например, "Индия, Дели ", написано зеленым цветом).По сути, я хочу таблицу (или фрейм данных) с двумя столбцами, один для компании, а другой для местоположения.Есть идеи?

Ответы [ 2 ]

10 голосов
/ 07 мая 2011

Вы можете легко сделать это, используя пакет XML в R.Вот код

url = "http://www.consumercomplaints.in/bysubcategory/mobile-service-providers/page/1.html"
doc = htmlTreeParse(url, useInternalNodes = T)

profiles = xpathSApply(doc, "//a[contains(@href, 'profile')]", xmlValue)
profiles = profiles[!(1:length(profiles) %% 2)]

states   = xpathSApply(doc, "//a[contains(@href, 'bystate')]", xmlValue)
1 голос
/ 29 апреля 2011

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

preg_match('/>[a-zA-Z0-9]+<\/a><\/h4><\/td>/', $str, $matches);
for($i = 0;$i<sizeof($matches);$i++)
 echo $matches[$i];

Вы можетеотметьте это .

...