Питхон стругач за слике није само алат за изоштравање ваших програмских вештина. Можете га користити и за извор слика за пројекат машинског учења или генерисање сличица сајта. Иако можда постоје и други начини да урадите сличне ствари, ништа не може победити контролу коју имате користећи алате које сами направите.

Научите како да скидате слике са било које веб локације користећи Питхон и БеаутифулСоуп библиотеку.

Да ли је сликање легално?

Као генерализованије веб стругање, гребање слика је метода за преузимање садржаја веб локације. Није противзаконито, али постоје нека правила и најбоље праксе које треба да се придржавате. Прво, требало би да избегавате да скраћујете веб локацију ако на њој изричито стоји да то не жели. Ово можете сазнати тражењем а /robots.txt датотеку на циљној локацији.

Већина веб локација дозвољава претраживање веба јер желе да претраживачи индексирају њихов садржај. Такве веб-сајтове можете да изгребете јер су њихове слике јавно доступне.

Међутим, само зато што можете преузети слику, то не значи да је можете користити као да је ваша. Већина веб локација лиценцира своје слике како бисте спречили да их поново објавите или да их поново користите на друге начине. Увек претпоставите да не можете поново користити слике осим ако не постоји посебан изузетак.

Подешавање Питхон пакета

Мораћете да инсталирате неколико пакета пре него што почнете. Ако немате инсталиран Питхон на рачунару, посетите званични питхон.орг веб-сајт за преузимање и инсталирање најновије верзије.

Затим отворите свој терминал у фасцикли пројекта и активирати Питхон виртуелно окружење да изолујете своје зависности.

На крају, инсталирајте захтева и БеаутифулСоуп пакети који користе пип:

пип инсталл бс4 захтеви

Скрапинг слике помоћу Питхон-а

За овај водич за стругање слика, користићете захтева библиотека да преузме веб страницу која садржи циљне слике. Затим ћете проследити одговор са те веб странице БеаутифулСоуп да бисте преузели све адресе веза са сликама имг ознаке. Затим ћете сваку датотеку слике написати у фасциклу да бисте преузели слике.

Како преузети УРЛ-ове слика помоћу Питхон-овог БеаутифулСоуп-а

Сада наставите и креирајте Питхон датотеку у основној фасцикли вашег пројекта. Уверите се да сте додали .пи проширење за име датотеке.

Сваки исечак кода у овом водичу се наставља од претходног.

Отворите Питхон датотеку са било који добар уређивач кода и користите следећи код да затражите веб страницу:

увоз захтева
УРЛ = "сликеситеУРЛ" # Замените ово УРЛ-ом веб локације
гетУРЛ = рекуестс.гет (УРЛ, заглавља={"Усер-Агент":"Мозилла/5.0"})
штампа (гетУРЛ.статус_цоде)

Ако горњи програм избаци код одговора од 200, захтев је успешан. У супротном, можда бисте желели да се уверите да је ваша мрежна веза стабилна. Такође, уверите се да сте навели исправан УРЛ.

Сада користите БеаутифулСоуп да чита садржај веб странице уз помоћ хтмл_парсер:

из бс4 увоз БеаутифулСоуп

супа = БеаутифулСоуп (гетУРЛ.тект, 'хтмл.парсер')

слике = соуп.финд_алл('имг')
штампа (слике)

Овај код креира листу објеката, од којих сваки представља слику са веб странице. Међутим, оно што вам треба од ових података је текст сваке слике срц атрибут.

Да бисте издвојили извор из сваке имг ознака:

имагеСоурцес = []

за слика ин слике:
имагеСоурцес.аппенд (имаге.гет('срц'))

штампа (извори слика)

Поново покрените свој код и адресе слика би сада требало да се појаве на новој листи (имагеСоурцес). Успешно сте издвојили сваки извор слике са циљне веб странице.

Како сачувати слике помоћу Питхон-а

Прво креирајте одредишну фасциклу за преузимање у основном директоријуму вашег пројекта и дајте јој име слике.

Да би Питхон успешно преузео слике, њихове путање морају бити пуне апсолутне УРЛ адресе. Другим речима, они морају да укључе „ http://" или " https://" префикс, плус цео домен веб локације. Ако веб страница упућује на своје слике користећи релативне УРЛ адресе, мораћете да их конвертујете у апсолутне УРЛ адресе.

У једноставном случају, када је УРЛ апсолутна, покретање преузимања је само случај захтевања сваке слике из раније екстрахованих извора:

за слика ин извори слика:
вебс = рекуестс.гет (слика)
опен('имагес/' + имаге.сплит('/')[-1], 'вб').врите (вебс.цонтент)

Тхе имаге.сплит('/')[-1] кључна реч дели везу са сликом на свакој косој црти (/). Затим преузима име датотеке слике (укључујући било коју екстензију) из последњег елемента.

Имајте на уму да, у ретким случајевима, називи датотека слика могу да се сукобе, што резултира преписивањем преузимања. Слободно истражите решења овог проблема као проширење овог примера.

Апсолутни УРЛ-ови могу постати прилично компликовани, са много рубних случајева за покривање. На срећу, постоји корисна метода у захтеви.цомпат пакет тзв урјоин. Овај метод враћа пуну УРЛ адресу, с обзиром на основни УРЛ и УРЛ који може бити релативан. Омогућава вам да решите вредности које ћете пронаћи хреф и срц атрибути.

Коначни код изгледа овако:

из бс4 увоз БеаутифулСоуп
УРЛ = "сликеситеУРЛ" # Замените ово УРЛ-ом веб локације
гетУРЛ = рекуестс.гет (УРЛ, заглавља={"Усер-Агент":"Мозилла/5.0"})
супа = БеаутифулСоуп (гетУРЛ.тект, 'хтмл.парсер')

слике = соуп.финд_алл('имг')
ресолведУРЛс = []

за слика ин слике:
срц = имаге.гет('срц')
ресолведУРЛс.аппенд (рекуестс.цомпат.урљоин (УРЛ, срц))

за слика ин ресолведУРЛс:
вебс = рекуестс.гет (слика)
опен('имагес/' + имаге.сплит('/')[-1], 'вб').врите (вебс.цонтент)

Никада не губите податке о сликама

Многи пројекти за препознавање слика су ударили у зид од цигле због неадекватне количине слика за обуку модела. Али увек можете да скидате слике са веб локација да бисте побољшали своје складиште података. И на срећу, Питхон је моћан алат за стругање слика који можете да користите непрекидно без страха да ћете добити цену.

Ако сте заинтересовани за преузимање других типова података са веба, можда ћете желети да сазнате како да користите Питхон за опште веб скрапинг.