Вопрос к программерам
пиши на ассемблере!
во будет работать! ага.
На том, который знаешь
Если не очень серьезная, то на том, какой знаешь.
Если серьезная, то C/C++.
Ща набегут хаятели...
В любом случае будешь писать на том языке, который знаешь.
Либо узнаёшь при написании.
Достаточно, чтобы прилагались к компилятору или интерпретатору сетевые средства и пр.
А Си(++) --- только если ты пишешь новый яндекс.
---
...Я работаю антинаучным аферистом...
На VB изобразишь?
Ищешь или пишешь сам пару вспомогательных Com-компонент для работы с инетом.
А логику с чистой душой пишешь на VB.
не считается , компоненты ведь на сях будут
Почти в любом языке можно найти компоненты, либы и т.д., которые были написаны на C/C++.
дык
Надо будет --- хоть на шелле буду писать. Sono cosa nostra.
Благо, всякие вспомогательные вещи, почти наверняка, написаны.
---
...Я работаю антинаучным аферистом...
никакой. некоторые готовы и на Симпасе писать
---
...Я работаю антинаучным аферистом...
---
...Я работаю...
всё. отстань. пиши на чём хочешь. Человек спросил "на чём лучше", все желающие высказались.
В будущем, следи за словами, чтобы не говорить полную чушь.
будущем
Зачем искать/писать? Есть же Internet Explorer.
---
...Я работаю...
Блин, Контра, я имею ввиду COM компоненты Internet Explorer'a. Медленно, но ничего делать ручками зато не надо, хоть на VB Script пиши. А так С наш выбор.
Ну, тогда правильно.
Только решение какое-то тяжеловесное.
Вроде же тебе надо только http-заголовки получить?
Насколько я помню, там есть что-то вроде "Last-Changed:".
А тогда, вроде, можно wget-ом...
---
...Я работаю...
Лучше поискать что-то попроще.
Можно посылать http-запросы по netcat-у, если у wget-а нет обеспечения доставки только заголовков.
sed + bash/cmd при подготовке, а внутри, что-то вроде "netcat/wget | sed".
На выходе получаешь список дат в виде RFC822 в порядке, соответствующем исходному списку файлов.
Можно получить и пары "файл --- время обновления"
И никаких "сей".
---
...Я работаю антинаучным аферистом...
Может и так. Я не знаю, как работает http, поэтому советов давать не могу. Если можно получить дату документа, его не скачивая, то, конечно, можно и по простому. Только не уверен что такая фишка прокатит со страницами генерируемыми на лету всякими perl'ами и php. Скорее всего, придется таки скачивать страницу и считать что-нибудь типа CRC.
Вроде же тебе надо только http-заголовки получить?По заголовкам нормально не проверить . Тут по контенту надо сравнивать.......... А заголовки - это вещь такая - не очень обязательная.......
Насколько я помню, там есть что-то вроде "Last-Changed:".
wget -S --spider URL
---
...Всё в наших RU.KAX...
---
...Всё в наших RU.KAX...
Internet Explorer очень тяжеловесная и очень не удобная в использовании (из кода) штука.
grep /^Last-Modified:/
md5sum
---
...Всё в наших RU.KAX...
Ты уверен что этот заголовок везде выставляется ? Когда сайт генерится динамически - этот заголовок на совести программера. Куда надёжней да и не шибко сложней по контенту проверять........
А фигли там использовать то? Закачать документ и получить его текст. Не так уж и много действий.
Но лучше --- сначала проверить по заголовку, а потом, если такового не окажется, выкачивать содержимое.
---
...Я работаю...
он выставляется всегда - но пе умолчанию (и это редко меняют) если страници генерятся динамически - в нём текущее время........ А на статистических сайтах как правило полезной информации нет ............. Так что лучше сразу с заголовками не возиться - а по контенту проверять.
если достаточно написать что-то такое:
[c]
WebRequest request = WebRequest.Create("");
using (StreamReader reader = new StreamReader(
request.GetResponse.GetResponseStream
Encoding.GetEncoding(1251
{
return reader.ReadToEnd;
}
[/c]
А их ещё и целая куча таких...
---
...Я работаю антинаучным аферистом...
www.forth.org.ru
302 Moved
Connection: close
Location: http://www.eserv.ru/robots/lwp.html
Content-Type: text/html
Client-Date: Wed, 23 Jul 2003 16:56:11 GMT
Client-Peer: 209.15.179.216:80
Client-Warning: Redirect loop detected
Это по поводу наличия заголовка Last-Modified В частности - об надёжности определения по нему обновления сайта......
[devel alex]$ HEAD 302 Moved
Connection: close
Location: http://www.eserv.ru/robots/lwp.html
Content-Type: text/html
Client-Date: Wed, 23 Jul 2003 16:56:11 GMT
Client-Peer: 209.15.179.216:80
Client-Warning: Redirect loop detected
Это по поводу наличия заголовка Last-Modified В частности - об надёжности определения по нему обновления сайта......
Надо как-то пересылки отслеживать.
Просто если есть такой заголовок, то это сильно уменьшает нагрузку на сеть и упрощает задачу.
Если есть такой заголовок - надо ещё как то определить на сколько он соответствует действительности .... Если там текущее время - то всё понятно . А если этот заголовок например программеры по началу выставляли в ручную , а потом забили на это (девочка-секретарша которая контент обновляет не умеет это например делать) .........
Обновлением заголовка.
Ну это уже .NET. Речь шла о простом VB (не 7) и COM компонентах, которые придется писать на С++. А вообще, конечно, лучше нарыть код на С или С++, где закачивается страница и адаптировать его под свои нужды. Тогда быстрота и разработки и кода будет максимальной.
Если сайт динамический - то сервер ставит или текущее время , или без этого заголовка. Этот заголовок - чтоб был адекватный при динамических сайтах - надо выставлять или вручную (изменил что нибудь в коде - полез ручками заголовок поменял) , или если изменение например через администраторский интерфейс - встраивать автоматическое изменение этого заголовка при изменении сайта через админ интерфейс . Но это геммор , и обычно с этим никто не связывается .........
Видимо, и с сетевыми стандартами как в России: "Хотели, как лучше..."
разве не с любыми стандартами так?
а вообще такую прогу набросать (проверка обновлений) - дело на 10 минут .......... Мы тут на дискусию раз в .... больше потратили
С жизненно важными --- не так.
EtherNet-ов существенно меньше, чем RS-232 и подобных.
нет - просто в любом стандарте есть обязательные части , а есть "рекомендованные" .А Last-Modified: не строго обязательное поле.
Мы тут обсудили, на каком языке писать...
Как проверять...
Сразу же нашли грабли...
И всё --- не отходя от кассы!
То есть, ни строки кода.
Это с 1.0 (RFC 1945) идёт и с 1.1?
The Last-Modified entity-header field indicates the date and time at
which the origin server believes the variant was last modified.
Last-Modified = "Last-Modified" ":" HTTP-date
An example of its use is
Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT
The exact meaning of this header field depends on the implementation
of the origin server and the nature of the original resource. For
files, it may be just the file system last-modified time. For
entities with dynamically included parts, it may be the most recent
of the set of last-modify times for its component parts. For database
gateways, it may be the last-update time stamp of the record. For
virtual objects, it may be the last time the internal state changed
это из
Hypertext Transfer Protocol -- HTTP/1.1
Короче, можно писать на Си++, в либе MFC есть классы для формирования http-запросов, анализа ответов (см. CHttpConnection можно писать на языках семейства .NET, в .NET Framework есть классы для того же самого: System.Web.*, в джаве тоже небось это есть (не знаком я с ней можно и на VB или JScript прогать, тогда надо юзать стандартный мелкомягкий XML-парсер, он тоже умеет HTTP-запросы слать. Можно на перле, можно... Короче, вариантов масса.
Зря не задал.
---
...Я работаю...
Пусть даже "Mon, 13 Jan 666 13:13:13 GMT +0000 (HELL)".
zond:~> apt-cache show libwww-dev
Package: libwww-dev
Priority: optional
Section: devel
Installed-Size: 4536
Maintainer: Richard Atterer <debian.org>
Architecture: i386
Source: w3c-libwww
Version: 5.3.2-9
Depends: libwww0 (=5.3.2-9 zlib1g-dev
Suggests: libexpat0-dev | libexpat1-dev, expat
Filename: pool/main/w/w3c-libwww/libwww-dev_5.3.2-9_i386.deb
Size: 1048402
MD5sum: 5a0d334f3229e8b2a53020c9571d2e57
Description: The W3C WWW library - development files
libwww is a highly modular, general-purpose client side Web API
written in C for Unix and Windows (Win32). It's well suited for
both small and large applications, like browser/editors, robots,
batch tools, etc. Pluggable modules provided with libwww include
complete HTTP/1.1 (with caching, pipelining, PUT, POST, Digest
Authentication, deflate, etc MySQL logging, FTP, HTML/4,
XML (expat RDF (SiRPAC and much more.
.
Unlike other libraries for web access, libwww can use a single
select loop to wait for multiple simultaneous connections. With
glibwww, the libwww event loop can be integrated into the glib event
loop, making it very easy to develop GTK+ web applications.
.
It is quite difficult to write programs that use libwww, due to its
complexity. If you do not need its advanced features, have a look at
libcurl.
Package: libwww-dev
Priority: optional
Section: devel
Installed-Size: 4536
Maintainer: Richard Atterer <debian.org>
Architecture: i386
Source: w3c-libwww
Version: 5.3.2-9
Depends: libwww0 (=5.3.2-9 zlib1g-dev
Suggests: libexpat0-dev | libexpat1-dev, expat
Filename: pool/main/w/w3c-libwww/libwww-dev_5.3.2-9_i386.deb
Size: 1048402
MD5sum: 5a0d334f3229e8b2a53020c9571d2e57
Description: The W3C WWW library - development files
libwww is a highly modular, general-purpose client side Web API
written in C for Unix and Windows (Win32). It's well suited for
both small and large applications, like browser/editors, robots,
batch tools, etc. Pluggable modules provided with libwww include
complete HTTP/1.1 (with caching, pipelining, PUT, POST, Digest
Authentication, deflate, etc MySQL logging, FTP, HTML/4,
XML (expat RDF (SiRPAC and much more.
.
Unlike other libraries for web access, libwww can use a single
select loop to wait for multiple simultaneous connections. With
glibwww, the libwww event loop can be integrated into the glib event
loop, making it very easy to develop GTK+ web applications.
.
It is quite difficult to write programs that use libwww, due to its
complexity. If you do not need its advanced features, have a look at
libcurl.
я бы на РНР написал.
Оставить комментарий
esipova74
На каком язаке лучше аписать прогу, постоянно сканирующую интернет (напрёд заданные ресурсы) на вопрос обновления информации. Спасибо.