Как я могу собрать определенные данные с сайта

11830
Stoney

Я пытаюсь собрать данные с сайта для исследования.

URL-адреса хорошо организованы в формате example.com/x, где x - это возрастающий номер, а все страницы структурированы одинаково. Мне просто нужно взять определенные заголовки и несколько номеров, которые всегда находятся в тех же местах. Затем мне нужно будет получить эти данные в структурированной форме для анализа в Excel.

Я использовал wget прежде, чтобы загрузить страницы, но я не могу понять, как получить определенные строки текста.

В Excel есть функция для сбора данных из Интернета (Данные-> Из Интернета), но из того, что я вижу, она позволяет загружать только таблицы. К сожалению, мне нужны данные не в таблицах.

2
В конце я создал файл .txt со списком всех URL-адресов, которые мне были нужны, и wget загрузил все страницы в этом файле. Затем я использовал [iMacros] (http://www.iopus.com/imacros/firefox/) в соответствии с предложением @Lamb для локального извлечения данных. Мне показалось, что пробную версию fulll легче всего начать. Некоторые полезные функции для начинающих недоступны в графическом интерфейсе плагина Firefox, хотя тот же код будет работать. Stoney 11 лет назад 0

2 ответа на вопрос

2
Ankit

Вы можете использовать iMacros для автоматизации этой задачи. Это инструмент для автоматизации повторяющихся задач, его можно использовать для извлечения данных с сайта и сохранения их в виде файла CSV.

Как и xв случае example.com/xс шаблоном (т. Е. По возрастанию), вы можете легко запрограммировать (даже без программирования) его посещение каждой страницы и извлечение данных из нее.

Узнайте больше на iMacros Tutorial .

В качестве альтернативы вы также можете попробовать ScraperWiki (требуется некоторый опыт программирования).

Спасибо! iMacros - это то решение, которое мне нужно. Задав оригинальный вопрос, я нашел ScraperWiki. Кажется, это мощный инструмент, но для меня это немного сложно. Stoney 11 лет назад 0
1
user157938

Вы можете вставить этот код в модуль:

Option Explicit Sub get_data() Dim result As String Dim myURL As String Dim winHttpReq As Object Set winHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1") myURL = "example.com/x format"  winHttpReq.Open "GET", myURL, False winHttpReq.Send result = winHttpReq.responseText Application.ScreenUpdating = True  Range("Sheet1!A1").value = result End sub 

Вы можете просто проанализировать длинную строку в ячейке A1, чтобы извлечь необходимые данные.

Было бы полезно, если бы вы объяснили, что делает код. Baarn 11 лет назад 1

Похожие вопросы