Я следую учебному пособию о том, как использовать Beautiful Soup для программирования веб-скребка.
https://youtu.be/XQgXKtPSzUI?t=1229 Вот учебник с отметкой времени моего контрольно-пропускного пункта.
Все шло хорошо, мне удалось получить название бренда и сохранить его в переменной.
Однако, когда дело дошло до получения названия элемента, я не знаю, отклонился ли я от руководства или изменилась ли структура сайта, но я не могу этого сделать.
Вот мой код:
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as Soup
my_url = 'https://www.newegg.com/global/uk-en/Desktop-Graphics-Cards/SubCategory/ID-48?nm_mc=KNC-GoogleukAdwords&cm_mmc=KNC-GoogleukAdwords-_-Sitelink-UK-_-VGA-Cards-_-Global&gclid=CjwKCAjwv4_1BRAhEiwAtMDLsjTOkmeuVkXvw4LI45DrrqAEHdpSjqAgYEhh48TO-7kGQiAe0x5VPBoCBYQQAvD_BwE'
#Opening conection, grabbing page
uClient = uReq(my_url)
#offloads contents into variable
page_html = uClient.read()
#closes connection
uClient.close()
#html parsing
page_soup = Soup(page_html, "html.parser")
#grabs each product
containers = page_soup.findAll("div", {"class": "item-container"})
divWithInfo = containers[0].find("a","item-title")
Если бы я, где распечатать содержимое divWithInfo, я бы получил: <a class="item-title" href="https://www.newegg.com/global/uk-en/gigabyte-radeon-rx-570-gv-rx570gaming-4gd-rev2-0/p/N82E16814932242" title="View Details">GIGABYTE Radeon RX 570 DirectX 12 GV-RX570GAMING-4GD REV2.0 4GB 256-Bit GDDR5 PCI Express 3.0 x16 ATX Video Card</a>
Это насколько я могу получить. Я прочитал это и предположил, что мне нужно искать атрибут заголовка внутри этого тега. Однако я не знаю, как напечатать содержимое атрибута title в переменную.
Конечным результатом будет возможность напечатать только имя элемента, так: "GIGABYTE Radeon RX 570 DirectX 12 GV-RX570GAMING-4GD REV2.0 4GB 256-Bit GDDR5 PCI Express 3.0 x16 ATX Video Card"
Я довольно новичок во всем этом, поэтому любая помощь будет признательна, если что-то потребует разъяснений, пожалуйста, дайте мне знать.