Semalt: Скрапинги веб бо Python

Оё шумо яке аз он лаҳзаҳои мудҳишро аз сар гузаронидаед, вақте ки шумо Wi-Fi надоред. Агар ин тавр бошад, пас шумо дарк кардед, ки чӣ қадар корҳоеро, ки дар компютер мекунед, ба шабака вобаста аст. Одати муқаррарӣ, шумо худатон имкони тафтиш кардани мактубҳои электронӣ, дидани суратҳои инстаграми дӯст ва инчунин хондани твитҳои онҳоро пайдо мекунед.
Азбаски миқдори зиёди корҳои компютерӣ равандҳои вебро дар бар мегиранд, хеле мувофиқ мебуд, агар барномаҳои шумо ҳам онлайн пайдо карда метавонистанд. Ин ҳолат барои тозакунии веб аст . Он истифодаи барномаро барои зеркашӣ ва коркарди мундариҷа аз веб дарбар мегирад. Масалан, Google барномаҳои гуногуни скреперҳоро барои индексатсия кардани веб саҳифаҳо барои системаи ҷустуҷӯии худ истифода мебарад.

Роҳҳои зиёде ҳастанд, ки шумо метавонед маълумотро аз интернет каҷ кунед . Бисёре аз ин усулҳо фармони забонҳои гуногуни барномасозиро талаб мекунанд, масалан Python ва R. Масалан, бо Python шумо метавонед як қатор модулҳоро ба мисли дархостҳо, шӯрбои зебо, Webbrowser ва Selenium истифода баред.
Модули "Дархостҳо" ба шумо имконият медиҳад, ки файлҳоро ба осонӣ аз Интернет зеркашӣ кунед, бе ташвиш аз масъалаҳои душвор ба монанди мушкилоти пайвастшавӣ, хатогиҳои шабакавӣ ва фишурдани маълумот. Он ҳатман бо Python намеояд ва шумо бояд онро аввал насб кунед.
Модул тавре таҳия карда шудааст, ки модули 'urllib2' -и Python душвориҳои зиёд дорад, ки истифодаи онро душвор мегардонад. Ин дар асл насб кардани он хеле осон аст. Шумо бояд танҳо дархости насб кардани насбро аз сатри фармон иҷро кунед. Пас шумо бояд озмоиши оддиро анҷом диҳед, то боварӣ ҳосил намоед, ки модул дуруст насб шудааст. Барои ин, шумо метавонед дар қабати интерактивӣ '>>> дархостҳои воридот' нависед. Агар ягон хатогӣ пайдо нашавад, пас насбкунӣ муваффақ буд.
Барои зеркашии саҳифа, шумо бояд вазифаи 'request.get ()' - ро оғоз кунед. Функсия сатри URL-ро барои зеркашӣ мегирад ва баъд объекти 'вокуниш' -ро бармегардонад. Ин ҷавобро веб-сервере, ки барои дархости шумо фиристода шудааст, дар бар мегирад. Агар дархости шумо муваффақ шавад, веб саҳифаи зеркашида ҳамчун сатр дар тағирёбандаи матнии объектҳо ҳамчун сатр сабт карда мешавад.
Объекти посух одатан дорои хусусияти коди ҳолат аст, ки шумо метавонед барои фаҳмидани муваффақияти зеркашии шумо истифода баред. Ҳамин тавр, шумо метавоед 'афзоиш барои ҳаракат ба объекти вокуниш' баланд бардоштани_кор_статус () '-ро истифода баред. Ин истисноро ба миён меорад, агар ягон хатогӣ дар зеркашии файл рух дода бошад. Ин як роҳи олӣ барои ҳосил кардани як барнома дар пайгирии зеркашии бад мебошад.

Аз ин ҷо, шумо метавонед файли веби зеркашишударо дар диски сахти шумо бо истифодаи функсияҳои стандартӣ, 'open ()' ва 'write ()' захира кунед. Аммо, барои нигоҳ доштани рамзгузории Юникод дар матн шумо бояд маълумотҳои матниро бо маълумоти бинарӣ иваз намоед.
Барои навиштани маълумот ба файл, шумо метавонед аз 'for' давр бо 'iter_content ()' истифода баред. Ин усул миқдори зиёди маълумотро дар бораи ҳар як итератсия тавассути давр бармегардонад. Ҳар як гирд бо байт аст ва шумо бояд муайян созед, ки ҳар як миқдори байт аз чанд байт иборат аст. Пас аз навиштани шумо, пӯшидани файл 'close ()' кунед ва коратон ҳоло ба охир расид.