|
|
|
Анализ содержимого сайта
|
|||
|---|---|---|---|
|
#18+
Здравстуйте, не знаю в ту ли тему написал, так что если что извиняйте. Поставлена задача написать прогу, которая может анализировать содержимое некоего сайта на предмет появления новой информации, содержащей определенный контент (ключевые слова). Если новая информация есть, то уведомить пользователя. Раньше ничего такого не писал и анализом сайтов не сталкивался. Есть начальное представление как делать: 1. каким то образом обойти все содержимое сайта и выдернуть его для анализа 2. проанализировать содержимое на наличие искомого контента Хотелось бы услышать мнение форумчан, как бы они это делали, что использовали, в чем реализовали, какие могут быть трудности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2010, 10:03:34 |
|
||
|
Анализ содержимого сайта
|
|||
|---|---|---|---|
|
#18+
Ilya_M1. каким то образом обойти все содержимое сайта и выдернуть его для анализа 2. проанализировать содержимое на наличие искомого контента1. Классы для взаимодействия по http. Для C#, например, WebClient или HttpWebRequest/HttpWebResponse. Получаем текст html. В нем ищем ссылки, по ним тоже выполняем запросы. 2. Например, регулярные выражения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2010, 10:26:44 |
|
||
|
Анализ содержимого сайта
|
|||
|---|---|---|---|
|
#18+
С давних времен есть такая стандартная утилита, как wget. Она предназначена для выкачки сайтов, умеет залазить по ссылкам и рукурсивно выкачивать все что надо. Подробности . Есть ее порт под винду. Так что писать качалку точно не понадобиться. После того, как тулза выкачает все, можете напустить на нее либо свою парсалку либо стороннюю, да хоть тото-же grep/awk итп. Так что проблему можно вообще решить bat-файлами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2010, 10:53:35 |
|
||
|
Анализ содержимого сайта
|
|||
|---|---|---|---|
|
#18+
Я бы написал на PowerShell или Python: PoSh: 1. Скачать при помощи WebClient 2. Выдрать при помощи select-string 3. Сравнить при помощи compare-object пример тут Python: есть библиотечка для разбора Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. В питоне также есть библиотеска для diff ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2010, 11:42:01 |
|
||
|
Анализ содержимого сайта
|
|||
|---|---|---|---|
|
#18+
IMHO конечно. Когда на сайте не слишком много страниц, полное скачивание сайта wget'ом можно считать приемлемым. А когда страниц очень много (новостной сайт или форум, например), да ещё ajax используется - что то сомневаюсь в разумности такого подхода. Опять же, как часто следует проверять и как быстро уведомить пользователя? Чтоб выкачать и пропарсить сайт в десять тыщ страниц полчаса может и не хватить. Можно нарваться и на блокировку от чрезмерно большого количества запросов, хотя, такой облом бывает не слишком часто. Мож на сайте есть экспорт в RSS или Atom с последними изменениями? Тогда имеет смысл использовать его как указатель на обновлённые страницы. По поводу проверки на наличие ключевых слов - можно так же посмотреть в сторону поисковиков. Конечно, сайт может быть запрещён для индексации, да и роботы не каждый день заходят. Так что, это только как вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2010, 23:44:59 |
|
||
|
|

start [/forum/topic.php?fid=16&fpage=105&tid=1343743]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
61ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 223ms |
| total: | 359ms |

| 0 / 0 |
