#c #curl #web-scraping #https #libcurl
Вопрос:
Недавно я использовал libcurl
для определения того, когда конкретная веб-страница была обновлена, прослушивая изменения на странице HTTPS status code
по CURLINFO_RESPONSE_CODE
умолчанию .
Однако сейчас я пытаюсь извлечь недавно загруженные данные с другой веб-страницы, но они HTTPS status code
остаются неизменными 200
даже тогда, когда страница была обновлена новой информацией.
Таким образом, существуют ли какие-либо другие параметры, которые можно отслеживать, чтобы как можно быстрее уведомить об изменении содержимого страницы? Сначала я подумал о том, чтобы подсчитать количество байтов на странице, когда она возвращается с помощью моей функции libcurl, а затем проверить, отличается ли длина следующего ответа в байтах (следовательно, сигнализируя о том, что на страницу добавлен какой-то новый контент).
Однако это приложение зависит от времени, и этот метод подсчета количества байтов и сравнения для каждого запроса-ответа может быть не лучшим подходом с точки зрения задержки, а также может быть не особенно точным (например, возможно, такой аспект в заголовке, как «попадание/промах с cloudfront», может привести к другому размеру страницы, даже если не загружено никакого нового внешнего контента).
Краткий вопрос:
Существуют ли какие-либо параметры (возможно, в заголовке ответа?), кроме тех HTTPS status code
, которые можно отслеживать, libcurl
чтобы как можно быстрее проверить, была ли страница обновлена каким-либо новым контентом?
Комментарии:
1. Может
HTTP HEAD
быть, запрос-это то, что вам нужно? curl.se/libcurl/c/CURLOPT_NOBODY.html2. Спасибо за предложение. Я использовал
HEAD
запросы, но я больше ищу параметры в этом запросе, которые могут измениться, тем самым уведомляя меня об обновленном содержимом.3. Возможно, вы ищете If-Modified-Since в протоколе HTTP.