Ошибка: нет при попытке удалить данные с помощью BeautifulSoup - PullRequest
0 голосов
/ 06 августа 2020

Я новичок в веб-сканировании. Я пытаюсь отказаться от заголовка ( QCY T5 Wireless Bluetooth Earphones V5.0 Touch Control Stereo HD, говорящего с батареей 380 мАч ) с помощью BeautifulSoup, но он показывает мне None на выходе. Вот код, который я пробовал:

from bs4 import BeautifulSoup
import requests

page=requests.get('https://www.daraz.pk/products/qcy-t5-wireless-bluetooth-earphones-v50-touch-control-stereo-hd-talking-with-380mah-battery-i143388262-s1304364361.html?spm=a2a0e.searchlist.list.1.5b7c4a71Jr4QZb&search=1')
soup=BeautifulSoup(page.content,'html.parser')
print (page.status_code)

heading=soup.find(class_='pdp-mod-product-badge-title')
print(heading)

Код html с веб-сайта:

<div class="pdp-mod-product-badge-wrapper"><span class="pdp-mod-product-badge-title" data-spm-anchor-id="a2a0e.pdp.0.i0.4f257123ixGMNY">QCY T5 Wireless Bluetooth Earphones V5.0 Touch Control Stereo HD talking with 380mAh battery</span></div>

Изображение Webiste

Ответы [ 2 ]

1 голос
/ 06 августа 2020

В page.content нет «pdp-mod-product-badge-title». Правильный класс - «breadcrumb_item_anchor_last», который вы можете извлечь в View Source в своем браузере.

Просмотреть источник

Код:

from bs4 import BeautifulSoup
import requests

page=requests.get('https://www.daraz.pk/products/qcy-t5-wireless-bluetooth-earphones-v50-touch-control-stereo-hd-talking-with-380mah-battery-i143388262-s1304364361.html?spm=a2a0e.searchlist.list.1.5b7c4a71Jr4QZb&search=1')
soup=BeautifulSoup(page.content,'html.parser')
print (page.status_code)

heading=soup.find(class_='breadcrumb_item_anchor_last')

print(heading.text.strip()) #Thanks to @bigbounty
1 голос
/ 06 августа 2020

Причина, по которой вы не можете получить данные, заключается в том, что в View Source веб-сайта нет класса, который вы упомянули.

Одна основная ошибка c, которую делают новички, - это искать элемент на вкладке «Проверить» страницы и определить классы для удаления. Никогда не делайте этого.

Для надежности всех данных всегда go, чтобы просмотреть исходный код страницы, нажав Ctrl + U, и искать свое содержимое. В большинстве случаев содержимое отображается динамически с помощью файла JS и вызовов API, которые можно найти на вкладке сети.

Для указанной выше проблемы также динамически загружается информация, которую вы ищете, а не доступно в исходном коде страницы.

...