Очистка данных из Amazon для создания кода отслеживания продукта - PullRequest
0 голосов
/ 06 июня 2019

Я пытаюсь написать код, который определит, доступен ли продукт на Amazon или нет.Я пытаюсь очистить данные из Amazon, а затем проверить, является ли строка «На складе» частью данных, которые я собираю.

        #part of a function called check
        page = requests.get(url,headers = headers)
        #parsing the html content
        doc = html.fromstring(page.content)

        # checking availability
        xpath_availability = '//*[@id="availability"]/span/text()'
        raw_availability = doc.xpath(xpath_availability)
        print(raw_availability)
        if "Is Stock" in raw_availability:
            print('Hello')


check('https://www.amazon.com/PlayStation-4-Slim-1TB-Console/dp/B071CV8CG2/ref=sr_1_2?keywords=ps4&qid=1559836554&s=videogames&sr=1-2&th=1')

Моя проблема в том, что привет никогда не печатается, а текст, который я получаю,либо пусто, либо следующее ['\n \n \n In Stock.\n \n \n '], что я делаю не так?Также, если у кого-то есть предложения по улучшению этого способа, я был бы признателен за это!

1 Ответ

0 голосов
/ 06 июня 2019

Попробуйте изменить информацию заголовка (в зависимости от вашей ОС и информации о браузере, вы можете проверить ее по номеру https://developers.whatismybrowser.com/useragents/explore/operating_system_name/mac-os-x/), Мне удалось очистить URL, используя:

url = 'https://www.amazon.com/PlayStation-4-Slim-1TB-Console/dp/B071CV8CG2/ref=sr_1_2?keywords=ps4&qid=1559836554&s=videogames&sr=1-2&th=1'
headers = {
    'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36'
}
page = requests.get(url,headers=headers)

# checking availability
xpath_availability = '//*[@id="availability"]/span/text()'
raw_availability = doc.xpath(xpath_availability)

print(raw_availability)
Output: ['\n        \n            \n    In Stock.\n        \n        \n    ']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...