Язык/библиотеки для загрузки и парсинга веб-страниц?

Какой язык и библиотеки подходят, чтобы сценарий проанализировал и загрузил небольшие числа веб-ресурсов?

Например, некоторые веб-сайты публикуют псевдоподкасты, но не как надлежащие каналы RSS; они просто публикуют файл MP3 регулярно с веб-страницей, содержащей плей-лист. Я хочу записать сценарий, чтобы регулярно работать и проанализировать соответствующие страницы для получения информации о ссылке и плей-листе, загрузить MP3 и поместить плей-лист в теги MP3, таким образом, это обнаруживается приятно в моем iPod. Существует набор подобных приложений, которые я мог записать также.

Какой язык Вы рекомендовали бы? Я хотел бы, чтобы сценарий работал на Windows и MacOS. Вот некоторые альтернативы:

  • JavaScript. Именно так я мог использовать jQuery для парсинга. Я не знаю, работает ли jQuery вне браузера все же.
  • Python. Вероятно, хорошая поддержка библиотеки того, чтобы сделать то, что я хочу. Но я не люблю синтаксис Python.
  • Ruby. Я сделал простой материал (парсинг руководства) в Ruby прежде.
  • Clojure. Поскольку я хочу провести немного времени с ним.

Каковы Ваш любимый язык и библиотеки для того, чтобы сделать это? И почему? Есть ли какие-либо хорошие подобные jQuery библиотеки для других языков?

20
задан Bennett McElwee 4 March 2010 в 00:32
поделиться

9 ответов

Если вы хотите провести некоторое время с Clojure (очень хорошая идея, ИМО!), Попробуйте Enlive . Описание GitHub читает

систему шаблонов и преобразований для Clojure на основе селекторов (а-ля CSS) - Подробнее

Помимо того, что она полезна для создания шаблонов, это библиотека, способная сканировать веб-страницы; см. начальную часть этого учебного пособия для некоторых простых примеров очистки. (Третья - это домашняя страница New York Times, так что на самом деле не все так просто.)

Если вы поищете, в Интернете есть и другие учебные пособия; Сам Enlive поставляется с некоторыми документами / примерами. (К тому же код содержит <1000 строк и очень удобен для чтения, хотя я полагаю, что это может быть меньше для тех, кто плохо знаком с языком.)

7
ответ дан 30 November 2019 в 00:51
поделиться

Как отметил Mikael S, hpricot - отличный парсер html на рубине. Однако для извлечения страниц вы можете использовать библиотеку скрейпинга, например scRUBYt или Mechanize.

2
ответ дан 30 November 2019 в 00:51
поделиться

Я настоятельно рекомендую использовать Ruby и библиотеку hpricot .

1
ответ дан 30 November 2019 в 00:51
поделиться

Я бы, наверное, сделал это с помощью PHP, curl, & phpQuery .. но есть много разных способов ..

0
ответ дан 30 November 2019 в 00:51
поделиться

Чем вы действительно хотите заниматься? Если вы хотите изучить Clojure || ruby ​​|| C, сделайте это. Если вы просто хотите, чтобы это было сделано, делайте то, что вам удобнее всего. И, по крайней мере, когда вы говорите «Clojure и библиотека», вы также говорите «Java и библиотека», их много, и некоторые из них очень хороши (хотя я не знаю, что это такое). То же самое было сказано выше о рубине и питоне. Так что ты хочешь сделать?

0
ответ дан 30 November 2019 в 00:51
поделиться

Clojure дампы ссылок, охватывающие enlive, основанные на tagSoup и агентах для параллельной загрузки (roundups/ дампы ссылок не очень красивы, но я потратил некоторое время на гугление/поиск различных libs. Спайдинг/ползание может быть очень простым или довольно сложным в зависимости от структуры сайтов, HTML, XHTML и т.д.)

http://blog.bestinclass.dk/index.php/2009/10/functional-social-webscraping/

http://nakkaya.com/2009/12/17/mashups-using-clojure/

http://freegeek.in/blog/2009/10/downloading-a-bunch-of-files-in-parallel-using-clojure-agents/

http://blog.maryrosecook.com/post/46601664/Writing-an-mp3-crawler-in-Clojure


http://gnuvince.wordpress.com/2008/11/18/fetching-web-comics-with-clojure-part-2/

http://htmlparser.sourceforge.net/

http://nakkaya. com/2009/11/23/converting-html-to-compojure-dsl/

http://www.bestinclass.dk/index.php/2009/10/functional-social-webscraping/


apache http client

http://github.com/rnewman/clj-apache-http

http://github.com/heyZeus/clj-web-crawler

http://japhr.blogspot.com/2009/01/clojure-http-clientclj. html

6
ответ дан 30 November 2019 в 00:51
поделиться

Beautiful Soup ( http://www.crummy.com/software/BeautifulSoup/ ) - хорошая библиотека Python для этого. Он специализируется на работе с искаженной разметкой.

5
ответ дан 30 November 2019 в 00:51
поделиться

В Ruby также есть Nokogiri, Nokogiri (鋸) - это синтаксический анализатор HTML, XML, SAX и Reader. Среди множества функций Nokogiri - возможность поиска документов с помощью селекторов XPath или CSS3.

4
ответ дан 30 November 2019 в 00:51
поделиться

Для jQuery-подобной библиотеки селекторов CSS в Perl взгляните на pQuery

Также посмотрите этот предыдущий вопрос SO для примеров парсинга и парсинга HTML на многих языках.

/ I3az /

0
ответ дан 30 November 2019 в 00:51
поделиться
Другие вопросы по тегам:

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