1

У меня есть список из нескольких сотен URL-адресов в одной защищенной паролем учетной записи, имеющий следующий формат:

https://somesite.com/somescript.php?nameA
https://somesite.com/somescript.php?nameB
https://somesite.com/somescript.php?nameC
...

Для каждого из этих URL я хотел бы извлечь строковое значение из соответствующей веб-страницы, причем такое значение всегда находится между конкретной строкой префикса и строкой постфикса, и создать локальный файл CSV с данными, извлеченными из каждого URL:

nameA,valueA
nameB,valueB
nameC,valueC
...

Есть ли какой-нибудь простой способ или скрипт для этого в Mac OS X?

Я уже пробовал плагин iMacros для Firefox, но, похоже, он не работает, по крайней мере, в Mac OS X. Может быть, Automator, но я не могу понять, как это сделать ...

1 ответ1

0

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

iMacros возвращает результаты в формате csv. Если в iMacros сложно выбрать нужный HTML-элемент, я часто выбираю большую часть страницы, а затем извлекаю нужную строку с помощью функции Mid() в Excel. Автономная полная версия iMacros имеет несколько полезных функций, которых нет в плагине Firefox (по крайней мере, в графическом интерфейсе). Вы можете использовать полную программу бесплатно в качестве 30-дневной пробной версии.

В качестве альтернативы вы можете использовать wget для загрузки всех страниц, а затем работать с ними локально. Он может получить страницы из списка URL-адресов. Wget также позволяет войти в систему, хотя по общему признанию я не пробовал это. Как только вы установили их локально, вы можете обработать их с помощью iMacros или даже с помощью текстового редактора, работающего с макросами, такого как notepad++.

Более мощным инструментом будет Scraperwiki. Это, однако, требует некоторого опыта программирования.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .