SQL для веба - PullRequest
       5

SQL для веба

4 голосов
/ 19 октября 2008

Кто-нибудь имеет опыт работы с языком запросов для Интернета?

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

Я бы предпочел синтаксис типа sql или linq. Конечно, я мог бы загрузить веб-страницу и начать делать на ней XPATH, но я ищу решение, в котором есть хорошая абстракция.

Я нашел websql

http://www.cs.utoronto.ca/~websql/

Что выглядит хорошо, но я не в Java

SELECT a.label
FROM Anchor a SUCH THAT base = "http://www.SomeDoc.html"
WHERE a.href CONTAINS ".ps.Z";

Есть ли там другие?

Существует ли библиотека, которая может использоваться на языке .NET?

Ответы [ 4 ]

3 голосов
/ 19 октября 2008

См. hpricot (библиотека Ruby).

# load the RedHanded home page
doc = Hpricot(open("http://redhanded.hobix.com/index.html"))
# change the CSS class on links
(doc/"span.entryPermalink").set("class", "newLinks")
# remove the sidebar
(doc/"#sidebar").remove
# print the altered HTML
puts doc

Поддерживает запросы с помощью селекторов CSS или XPath.

2 голосов
/ 20 октября 2008

Beautiful Soup и hpricot являются каноническими версиями для Python и Ruby соответственно.

Для C # я использовал и оценил HTML Agility Pack . Он отлично справляется с превращением грязного, недействительного HTML в запрашиваемое совершенство.

Существует также этот синтаксический анализатор C # html , который выглядит хорошо, но я не пробовал.

1 голос
/ 19 октября 2008

Возможно, вы ищете SPARQL . Он не позволяет вам анализировать страницы, но он предназначен для решения тех же проблем (т. Е. Извлечения данных с сайта - из облака ). Это стандарт W3C, но Microsoft, к сожалению, пока его не поддерживает.

0 голосов
/ 19 октября 2008

Я не уверен, что именно это вы ищете, но Freebase - это открытая база данных с программным интерфейсом запросов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...