Написание сканера, который остается в системе с любого сервера - PullRequest
0 голосов
/ 26 ноября 2009

Я пишу на гусеничном ходу. После того, как сканер заходит на веб-сайт, я хочу, чтобы сканер всегда оставался в системе. Как я могу это сделать? Клиент (например, браузер, сканер и т. Д.) Заставляет сервер подчиняться этому правилу? Этот сценарий может возникнуть, когда сервер разрешает ограниченное количество входов в день.

1 Ответ

5 голосов
/ 26 ноября 2009

«Состояние входа в систему» ​​обычно представлено cookie-файлами. Поэтому вам нужно сохранить информацию о cookie-файлах, отправленную этим сервером при входе в систему, а затем отправить этот cookie-файл вместе с каждым из ваших последующих запросов (как отметил Эйден Белл в своем сообщении, спасибо).

Смотрите также этот вопрос:

Как "поддерживать жизнь" с cookielib и httplib в python?

Более полная статья о том, как это реализовать:

http://www.voidspace.org.uk/python/articles/cookielib.shtml

Простейшие примеры приведены внизу этой страницы руководства:

https://docs.python.org/library/cookielib.html

Вы также можете использовать обычный браузер (например, Firefox) для входа в систему вручную. Тогда вы сможете сохранить cookie из этого браузера и использовать его в своем сканере. Но такие cookie-файлы обычно действительны только в течение ограниченного времени, поэтому они не являются долгосрочным полностью автоматизированным решением. Однако это может быть очень удобно для загрузки контента с веб-сайта один раз.

UPDATE:

Я только что нашел другой интересный инструмент в недавнем вопросе:

http://www.scrapy.org

Он также может использовать такой логин на основе файлов cookie:

http://doc.scrapy.org/topics/request-response.html#topics-request-response-ref-request-userlogin

Вопрос, который я упомянул, здесь:

Scrapy имя_домена для паука

Надеюсь, это поможет.

...