Python — Beautifulsoup | Почему моя функция find () не работает?

#python #beautifulsoup

#python #beautifulsoup

Вопрос:

Я серьезно схожу с ума. Не мог бы кто-нибудь, пожалуйста, объяснить мне, как это приводит к «None» для меня?

Большое спасибо за вашу поддержку!

 import requests
from bs4 import BeautifulSoup

url = "https://www.amazon.de/LG-OLED55CX9LA-Fernseher-Triple-Modelljahr/dp/B084XSZW1M/ref=sr_1_3?__mk_de_DE=ÅMÅŽÕÑamp;dchild=1amp;keywords=lg cx 55amp;qid=1597706640amp;sr=8-3"
headersq = {"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.2 Safari/605.1.15"}

page = requests.get(url,headers=headersq)

soup = BeautifulSoup(page.content,"html.parser")

price = soup.find(id="priceblock_ourprice")

print(price)
  

Комментарии:

1. Можете ли вы включить сюда исходный код HTML?

Ответ №1:

Попробуйте использовать lxml в качестве синтаксического анализатора вместо html.parser . установите его с помощью pip install lxml

 import requests
from bs4 import BeautifulSoup

url = "https://www.amazon.de/LG-OLED55CX9LA-Fernseher-Triple-Modelljahr/dp/B084XSZW1M/ref=sr_1_3?__mk_de_DE=ÅMÅŽÕÑamp;dchild=1amp;keywords=lg cx 55amp;qid=1597706640amp;sr=8-3"
headersq = {"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.2 Safari/605.1.15"}

page = requests.get(url,headers=headersq)

soup = BeautifulSoup(page.content,"lxml")

price = soup.find(id="priceblock_ourprice")

print(price.text)
  

Выводит:

 1.965,63 €