Невозможно проанализировать название продукта и его цену с веб-страницы - PullRequest
2 голосов
/ 07 ноября 2019

Я пытаюсь получить название продукта и его цену с веб-страницы, но каждый раз, когда я запускаю свой скрипт, я получаю эту ошибку `` вместо содержимого. Я проверил источник страницы, где есть селекторы, которые я использовал в моем скрипте.

Ссылка на сайт

Я пробовал:

import requests
from bs4 import BeautifulSoup

link = 'https://www.amazon.com/dp/B01DOLQ0BY'

res = requests.get(link,headers={"User-Agent":"Mozilla/5.0"})
soup = BeautifulSoup(res.text,"lxml")
product_name = soup.select_one("#productTitle").get_text(strip=True)
product_price = soup.select_one("[id='priceblock_ourprice']").text
print(product_name,product_price)

Как я могу получить название продукта и его цену с вышеупомянутого сайта?

Ответы [ 2 ]

1 голос
/ 07 ноября 2019

Измените заголовок на тот, который ожидает сервер

import requests
from bs4 import BeautifulSoup

headers = {'Accept-Language': 'en-US,en;q=0.9'}

res = requests.get('https://www.amazon.com/dp/B01DOLQ0BY/', headers=headers)
soup = BeautifulSoup(res.text,"lxml")
product_name = soup.select_one("#productTitle").get_text(strip=True)
product_price = soup.select_one("[id='priceblock_ourprice']").text
print(product_name,product_price)

Для различных продуктов вам потребуется найти селектор, общий для всех асинов. Для двух поставляемых вы можете использовать:

import requests
from bs4 import BeautifulSoup

headers = {'Accept-Language': 'en-US,en;q=0.9','User-Agent':'Mozilla/4.0'}

asins = ['B013TCZVVS','B01DOLQ0BY']

with requests.Session() as s:
    s.headers = headers
    for asin in asins:
        res = s.get(f'https://www.amazon.com/dp/{asin}/')
        soup = BeautifulSoup(res.text,"lxml")
        product_name = soup.select_one("#productTitle").get_text(strip=True)
        product_price = soup.select_one(".comparison_baseitem_column .a-offscreen").text
        print(product_name,product_price)
0 голосов
/ 07 ноября 2019

Вместо res.text попробуйте res.body

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...