#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
ошибку.