Ако често се оказвате, че извличате данни от уебсайтове, вероятно трябва да помислите за автоматизиране на процеса. Понякога наричан „уеб скрапинг“, процесът е често срещан за сайтове, които не предоставят официален API или канал. Разбира се, няма да стигнете доникъде, ако сайтът, който се опитвате да изтеглите, е недостъпен.

Ако управлявате свой собствен сайт, вероятно преди сте се сблъсквали с прекъсвания. Може да бъде разочароващо, да ви накара да загубите посетители и да прекъснете каквато и да е дейност, за която вашият сайт може да е отговорен. При такива обстоятелства си струва да можете лесно да проверите наличността на уебсайта си.

Python е страхотен език за писане на скриптове и неговият кратък, но четим синтаксис прави внедряването на инструмент за проверка на сайта проста задача.

Създаване на вашия персонализиран инструмент за проверка на уебсайтове

Инструментът за проверка на уебсайтове е направен специално за работа с няколко уебсайта наведнъж. Това ви позволява лесно да изключвате сайтове, които вече не ви интересуват, или да започнете да проверявате сайтове, които стартирате в бъдеще. Проверката е идеално „скелетно приложение“, върху което можете да надграждате, но демонстрира основен подход за извличане на уеб данни.

instagram viewer

Импортиране на библиотеки в Python

За да стартирате проекта, трябва да импортирате заявки библиотека в Python с импортиране функция.

импортиране заявки

Библиотеката с заявки е полезна за комуникация с уебсайтове. Можете да го използвате за изпращане на HTTP заявки и получаване на данни за отговор.

Съхранявайте URL адресите на уебсайта в списък

След като импортирате библиотеката, трябва да дефинирате и съхраните URL адресите на уебсайта в списък. Тази стъпка ви позволява да запазите множество URL адреси, които можете да проверите с инструмента за проверка на уебсайтове.

импортиране заявки

уебсайт_url = [
" https://www.google.co.в",
" https://www.yahoo.com",
" https://www.amazon.co.в",
" https://www.pipsnacks.com/404",
" http://the-internet.herokuapp.com/status_codes/301",
" http://the-internet.herokuapp.com/status_codes/500"
]

Променливата Интернет адрес съхранява списъка с URL адреси. Вътре в списъка дефинирайте всеки URL адрес, който искате да проверите, като отделен низ. Можете да използвате примерните URL адреси в кода за тестване или можете да ги замените, за да започнете да проверявате собствените си сайтове веднага.

След това запазете съобщенията за общ HTTP кодове за отговор. Можете да ги съхранявате в речник и да индексирате всяко съобщение по съответния код на състоянието. След това вашата програма може да използва тези съобщения вместо кодове за състояние за по-добра четливост.

състояния = {
200: „Наличен уебсайт“,
301: "Постоянно пренасочване",
302: "Временно пренасочване",
404: "Не е намерено",
500: "Вътрешна сървърна грешка",
503: "Услугата не е достъпна"
}

Създаване на цикъл за проверка на състоянието на уебсайта

За да проверите всеки URL на свой ред, ще искате да го направите прегледайте списъка на уебсайтове. Вътре в цикъла проверете състоянието на всеки сайт, като изпратите заявка чрез библиотеката със заявки.

за URL адрес в Интернет адрес:
опитвам:
web_response = requests.get (url)
печат (url, състояния[web_response.status_code])

с изключение:
печат (url, състояния[web_response.status_code])

Където:

  • за url...обхожда списъка с URL адреси.
  • URL адрес е променливата, към която цикълът for присвоява всеки URL.
  • опитайте/освенобработва всякакви изключения които могат да възникнат.
  • уеб_отговор е променлива, която предоставя свойство с кода на състоянието на отговора

Целият кодов фрагмент

Ако предпочитате да прегледате целия код наведнъж, ето пълен списък с кодове за справка.

импортиране заявки

уебсайт_url = [
" https://www.google.co.в",
" https://www.yahoo.com",
" https://www.amazon.co.в",
" https://www.pipsnacks.com/404",
" http://the-internet.herokuapp.com/status_codes/301",
" http://the-internet.herokuapp.com/status_codes/500"
]

състояния = {
200: „Наличен уебсайт“,
301: "Постоянно пренасочване",
302: "Временно пренасочване",
404: "Не е намерено",
500: "Вътрешна сървърна грешка",
503: "Услугата не е достъпна"
}

за URL адрес в Интернет адрес:
опитвам:
web_response = requests.get (url)
печат (url, състояния[web_response.status_code])

с изключение:
печат (url, състояния[web_response.status_code])

И ето пример за изпълнение на кода:

Възможностите за кодиране на Python при уеб скрапинг

Библиотеките на трети страни на Python са идеални за задачи като уеб сканиране и извличане на данни чрез HTTP.

Можете да изпращате автоматизирани заявки до уебсайтове за изпълнение на различни видове задачи. Те могат да включват четене на новинарски заглавия, изтегляне на изображения и автоматично изпращане на имейли.