Остружите веб локацију помоћу овог прелепог упутства за Питхон за супу

Остружите веб локацију помоћу овог прелепог упутства за Питхон за супу

Беаутифул Соуп је Питхон библиотека отвореног кода. Користи навигацијске парсере за стругање садржаја КСМЛ и ХТМЛ датотека. Подаци су вам потребни за неколико аналитичких сврха. Међутим, ако сте тек почели са Питхон -ом и стругањем са веба, Питхон -ову библиотеку Беаутифул Соуп вреди испробати за пројекат стругања веба.





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





Како инсталирати прелепу супу и започети с њом

Пре него што наставимо, у овом туториал чланку Беаутифул Соуп користићемо Питхон 3 и беаутифулсоуп4 , најновија верзија Беаутифул Соуп. Уверите се да сте ви креирајте Питхон виртуелно окружење да бисте изоловали свој пројекат и његове пакете од оних на вашој локалној машини.





како да знам које програме треба да деинсталирам на рачунару

Да бисте започели, морате инсталирати библиотеку Беаутифул Соуп у свом виртуелном окружењу. Беаутифул Соуп је доступан као ПиПи пакет за све оперативне системе, па га можете инсталирати са пип инсталл беаутифулсоуп4 команду преко терминала.

Међутим, ако користите Дебиан или Линук, горња команда и даље ради, али можете је инсталирати помоћу менаџера пакета покретањем апт-гет инсталл питхон3-бс4 .



Беаутифул Соуп не гребе директно УРЛ -ове. Ради само са готовим ХТМЛ или КСМЛ датотекама. То значи да не можете проследити УРЛ директно у њега. Да бисте решили тај проблем, морате да добијете УРЛ адресу веб локације са Питхон библиотеком захтева пре него што је унесете у Беаутифул Соуп.

Да бисте учинили ту библиотеку доступном за свој стругач, покрените захтеви за инсталирање пипа команду преко терминала.





Да бисте користили библиотеку рашчлањивача КСМЛ, покрените пип инсталл лкмл да бисте га инсталирали.

Прегледајте веб страницу коју желите да очистите

Пре него што обришете било коју веб локацију са којом нисте упознати, најбоља пракса је да прегледате њене елементе. То можете учинити пребацивањем прегледача у режим за програмере. То је прилично лако користите Цхроме ДевТоолс ако користите Гоогле Цхроме.





Међутим, потребно је прегледати веб страницу да бисте сазнали више о њеним ХТМЛ ознакама, атрибутима, класама и ид -овима. На тај начин откривају се основни елементи веб странице и њени типови садржаја.

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

Како остругати податке веб локација прелепом супом

Сада када сте све припремили, отворите жељени уређивач кода и креирајте нову Питхон датотеку, дајући јој изабрано име. Међутим, можете и ви користите веб засноване ИДЕ-ове попут Јупитер Нотебоок-а ако нисте упознати са покретањем Питхона преко командне линије.

Затим увезите потребне библиотеке:

from bs4 import BeautifulSoup
import requests

Прво, да видимо како библиотека захтева функционише:

from bs4 import BeautifulSoup
import requests
website = requests.get('http://somewebpages.com')
print(website)

Када покренете горњи код, он враћа статус 200, што указује на то да је ваш захтев успешан. У супротном, добијате статус 400 или неки други статус грешке који указују на неуспешан ГЕТ захтев.

Не заборавите да УРЛ адресу веб локације у загради увек замените циљном УРЛ адресом.

Када набавите веб локацију са добити захтев, прослеђујете га у Беаутифул Соуп, који сада може да чита садржај као ХТМЛ или КСМЛ датотеке помоћу уграђеног КСМЛ или ХТМЛ парсера, у зависности од изабраног формата.

Погледајте овај следећи исечак кода да бисте видели како то да урадите са ХТМЛ парсером:

from bs4 import BeautifulSoup
import requests
website = requests.get('http://somewebpages.com')
soup = BeautifulSoup(website.content, 'html.parser')
print(soup)

Горњи код враћа цео ДОМ веб странице са њеним садржајем.

Такође можете добити усклађенију верзију ДОМ -а користећи улепшати метода. Можете испробати ово да видите његове резултате:

from bs4 import BeautifulSoup
import requests
website = requests.get('http://somewebpages.com/')
soup = BeautifulSoup(website.content, 'html.parser')
print(soup.prettify())

Такође можете добити чисти садржај веб странице без учитавања њеног елемента са .тект метода:

from bs4 import BeautifulSoup
import requests
website = requests.get('http://somewebpages.com/')
soup = BeautifulSoup(website.content, 'html.parser')
print(soup.text)

Како састругати садржај веб странице по имену ознаке

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

На пример, да видимо како можете добити садржај у х2 ознаке веб странице.

from bs4 import BeautifulSoup
import requests
website = requests.get('http://somewebpages.com/')
soup = BeautifulSoup(website.content, 'html.parser')
print(soup.h2)

У исечку кода изнад, супа.х2 враћа први х2 елемент веб странице и занемарује остатак. Да бисте учитали све х2 елемената, можете користити финд_алл уграђена функција и за петља Питхона:

како знати да ли је чврсти диск мртав
from bs4 import BeautifulSoup
import requests
website = requests.get('http://somewebpages.com/')
soup = BeautifulSoup(website.content, 'html.parser')
h2tags = soup.find_all('h2')
for soups in h2tags:
print(soups)

Тај блок кода враћа све х2 елементи и њихов садржај. Међутим, садржај можете добити без учитавања ознаке помоћу .низ метода:

from bs4 import BeautifulSoup
import requests
website = requests.get('http://somewebpages.com/')
soup = BeautifulSoup(website.content, 'html.parser')
h2tags = soup.find_all('h2')
for soups in h2tags:
print(soups.string)

Ову методу можете користити за било коју ХТМЛ ознаку. Све што треба да урадите је да замените х2 означите са оним који вам се свиђа.

Међутим, можете и да избришете више ознака тако што ћете проследити листу ознака у финд_алл метода. На пример, блок кода испод брише садржај до , х2 , и наслов ознаке:

from bs4 import BeautifulSoup
import requests
website = requests.get('http://somewebpages.com/')
soup = BeautifulSoup(website.content, 'html.parser')
tags = soup.find_all(['a', 'h2', 'title'])
for soups in tags:
print(soups.string)

Како очистити веб страницу помоћу ИД -а и назива класе

Након прегледа веб локације помоћу ДевТоолс -а, омогућава вам да сазнате више о атрибутима ид и класе који држе сваки елемент у његовом ДОМ -у. Када добијете тај податак, можете остругати ту веб страницу помоћу ове методе. Корисно је када садржај циљне компоненте излази из базе података.

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

Погледајмо пример како можете остругати садржај странице испод користећи ИД:

from bs4 import BeautifulSoup
import requests
website = requests.get('http://somewebpages.com/')
soup = BeautifulSoup(website.content, 'html.parser')
id = soup.find(id = 'enter the target id here')
print(id.text)

Да бисте то урадили за назив класе, замените ид са класа . Међутим, писање класа директно доводи до забуне у синтакси јер Питхон то види као кључну реч. Да бисте заобишли ту грешку, морате да напишете доњу црту испред класе овако: класа_ .

У суштини, ред који садржи ид постаје:

my_classes = soup.find(class_ = 'enter the target class name here')
print(my_classes.text)

Међутим, веб страницу можете и остругати позивањем одређеног назива ознаке са одговарајућим ИД -ом или класом:

data = soup.find_all('div', class_ = 'enter the target class name here')
print(data)

Како направити стругач за вишекратну употребу са прелепом супом

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

Претпоставимо да желите да скинете цену мајица са веб локације за е-трговину. Примјер класе стругача испод издваја ознаке цијена и кошуље са одговарајућим ИД -овима или класама, а затим их враћа као оквир података Пандас са 'Цијена' и Име_кошуље као имена колона.

Уверите се да сте ви пип инсталл пандас преко терминала ако то већ нисте учинили.

import pandas as pd
class scrapeit:
try:
def scrape(website=None, tag1=None, id1=None, tag2=None, id2=None):
if not (website and tag1 and id1 and tag2 and id2)==None:
try:
page = requests.get(website)
soup = BeautifulSoup(page.content, 'html.parser')
infotag1 = soup.find_all(tag1, id1)
infotag2 = soup.find_all(tag2, id2)
priced = [prices.text for prices in infotag1]
shirt = [shirts.text for shirts in infotag2]
data = {
'Price':priced,
'Shirt_name':shirt}
info = pd.DataFrame(data, columns=['Price', 'Shirt_name'])
print(info)
except:
print('Not successful')
else:
print('Oops! Please enter a website, two tags and thier corresponding ids')
except:
print('Not successful!')

Стругач који сте управо направили је модул за вишекратну употребу и можете га увести и користити у другој Питхон датотеци. Да позовете стругати функцију из своје класе, коју користите сцрапеит.сцрапе ('УРЛ веб локације', 'цена_ознака', 'цена_ид', 'мајица_ознака', 'мајица_ид') . Ако не наведете УРЛ и друге параметре, елсе изјава од вас тражи да то учините.

Да бисте користили тај скапер у другој Питхон датотеци, можете га увести овако:

from scraper_module import scrapeit
scrapeit.scrape('URL', 'price_tag', 'price_id', 'shirt_tag', 'shirt_id')

Белешка: сцрапер_модуле је име Питхон датотеке која држи класу стругача.

Такође можете проверити Прелепа документација за супу ако желите дубље да зароните у то како то можете најбоље да искористите.

Прелепа супа је драгоцен алат за стругање веб страница

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

како покренути старе рачунарске игре на Виндовс 10

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

Објави Објави Твеет Емаил Најбољи мрежни алати за стругање на мрежи

Требате прикупљати податке са веб локација у аналитичке сврхе? Ови алати за стругање веба олакшавају рад.

Прочитајте следеће
Повезане теме
  • Програмирање
  • Питхон
О аутору Идисоу Омисола(94 објављена чланка)

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

Више од Идову Омисола

Претплатите се на наш билтен

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

Кликните овде да бисте се претплатили