Почему мой следующий код дает вывод NONE
NONE
from bs4 import BeautifulSoup import urllib3 import warnings warnings.filterwarnings("ignore", category=FutureWarning) urllib3.disable_warnings() url = "https://www.amazon.ae/dp/B07N62ZGWQ/ref=br_msw_pdt-5?_encoding=UTF8&smid=ABO0A2K2SKD5O&pf_rd_m=A2KKU8J8O8784X&pf_rd_s=&pf_rd_r=GZ376KPZWEXC0TBHXPKY&pf_rd_t=36701&pf_rd_p=da8f558b-6ee9-4705-8e31-6a4c345b29e8&pf_rd_i=desktop" http = urllib3.PoolManager() r = http.request('GET', url) content = r.data.decode('utf-8') soup = BeautifulSoup(content,'html.parser') print(soup.find('span', {'id':"priceblock_ourprice"}))
Я пытался использовать soup.find(id="priceblock_ourprice"), soup.select("#priceblock_ourprice"), но оба дали None output.
soup.find(id="priceblock_ourprice")
soup.select("#priceblock_ourprice")
ID присутствует на странице и имеет значение.
Сначала я изменил urllib3 на requests, потому что urllib3 выдавал исключение
urllib3
requests
См. Код ниже:
import requests from bs4 import BeautifulSoup url = "https://www.amazon.ae/dp/B07N62ZGWQ/ref=br_msw_pdt-5?_encoding=UTF8&smid=ABO0A2K2SKD5O&pf_rd_m=A2KKU8J8O8784X&pf_rd_s=&pf_rd_r=GZ376KPZWEXC0TBHXPKY&pf_rd_t=36701&pf_rd_p=da8f558b-6ee9-4705-8e31-6a4c345b29e8&pf_rd_i=desktop" response = requests.request('GET', url) content = response.content.decode('utf-8') soup = BeautifulSoup(content, 'html.parser') table = soup.find('table', attrs={'class': 'a-lineitem'}) price_blocks = table.find_all('span', attrs={'id': 'priceblock_ourprice'}) prices = [block.text for block in price_blocks] print(prices)
Консоль вывода:
['AED26.00']