Web Scrapping содержимое атрибута tittle - PullRequest
1 голос
/ 25 апреля 2020

Я следую учебному пособию о том, как использовать 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"

Я довольно новичок во всем этом, поэтому любая помощь будет признательна, если что-то потребует разъяснений, пожалуйста, дайте мне знать.

1 Ответ

0 голосов
/ 25 апреля 2020

Вам просто нужно получить текст. Это можно сделать довольно просто:

divWithInfo = containers[0].find("a","item-title").get_text()

или

divWithInfo = containers[0].find("a","item-title").text
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...