Ошибка атрибута BeautifulSoup: нетипичный

#python #web-scraping #beautifulsoup

#python #очистка веб-страниц #beautifulsoup

Вопрос:

Я пытался использовать те же несколько дней назад и работал нормально. Сегодня я проверил и показал ошибку атрибута: нетипичный. Может кто-нибудь, пожалуйста, помогите, где ошибка?

* Я удалил useragent здесь

 from bs4 import BeautifulSoup
import requests

headers = {"User-Agent": 'UserAgent'}

URL = 'https://www.centrepointstores.com/sa/en/Women/Fashion-Accessories/Watches/CENTREPOINT-Citizen-Women's-Rose-Gold-Analog-Metal-Strap-Watch-EU-6039-86A/p/EU603986AGold'

    page = requests.get(URL, headers=headers)
    soup = BeautifulSoup(page.content, 'html.parser')

    title = soup.find(id="product-details-name").text
    price = soup.find(id="products-details-price-current-01").text

    print (title)
    print (price)

    
  

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

1. Считаете ли вы, что веб-сайт мог измениться?

2. Я посмотрел, хотя мне это не показалось чем-то другим.

Ответ №1:

Не удаляйте свой headers , иначе страница подумает, что ваш бот и заблокирует вас.

 import requests
from bs4 import BeautifulSoup

URL = "https://www.centrepointstores.com/sa/en/Women/Fashion-Accessories/Watches/CENTREPOINT-Citizen-Women's-Rose-Gold-Analog-Metal-Strap-Watch-EU-6039-86A/p/EU603986AGold"

HEADERS = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36"
}

page = requests.get(URL, headers=HEADERS).content
soup = BeautifulSoup(page, 'html.parser')

title = soup.find(id="product-details-name").text
price = soup.find(id="products-details-price-current-01").text

print(title)
print(price)
  

Вывод:

 Citizen Women's Rose Gold Analog Metal Strap Watch EU 6039 86A
SAR 339
  

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

1. К сожалению, он по-прежнему не отображается после того, как я использовал разные заголовки. Мне придется обойти cloudfare. Спасибо за ваш вклад

Ответ №2:

когда print(soup.text) , это показывает мне Access denied | www.centrepointstores.com used Cloudflare to restrict access , что может вызвать AttributeError: NoneType ошибку.