Использование веб-скрапинга для проверки наличия товара на складеPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Использование веб-скрапинга для проверки наличия товара на складе

Сообщение Anonymous »

Я создаю программу на Python, которая использует парсинг веб-страниц для проверки наличия товара на складе. Код представляет собой скрипт Python 3.9, использующий Beautiful Soup 4 и запрашивающий информацию о доступности элемента. В конечном итоге я бы хотел, чтобы программа выполняла поиск по нескольким веб-сайтам и нескольким ссылкам на каждом сайте, чтобы мне не приходилось одновременно запускать кучу сценариев. Ожидаемый результат программы таков:

200

0

In Stock

Но я получаю:

200

[]

Out Of Stock
Значение «200» означает, что код может получить доступ к серверу, а ожидаемый результат — 200. «0» — это логическое значение, позволяющее узнать, есть ли товар на складе. Ожидаемый ответ — «0» для «В наличии». Я указал как товары в наличии, так и товары, которых нет в наличии, и они оба дают одинаковый ответ: 200 [] Нет в наличии. У меня такое ощущение, что что-то не так с out_of_stock_divs внутри def check_item_in_stock, потому что именно здесь я получаю результат [], когда он обнаруживает доступность элементаВчера у меня код работал правильно, но я продолжал добавлять функции (например, парсинг нескольких ссылок и разных веб-сайтов), но это сломало его, и я не могу вернуть его в рабочее состояние
Вот код программы. (Я основал этот код на коде г-на Арьи Будае на его веб-сайте https://aryaboudaie.com/. Однако я избавился от его текстовых уведомлений, потому что планирую просто запустить его на запасном компьютере рядом со мной и иметь издает громкий звук, это будет реализовано позже.)
from bs4 import BeautifulSoup
import requests

def get_page_html(url):
headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36"}
page = requests.get(url, headers=headers)
print(page.status_code)
return page.content

def check_item_in_stock(page_html):
soup = BeautifulSoup(page_html, 'html.parser')
out_of_stock_divs = soup.findAll("text", {"class": "product-inventory"})
print(out_of_stock_divs)
return len(out_of_stock_divs) != 0

def check_inventory():
url = "https://www.newegg.com/hp-prodesk-400-g ... 7ABC996974"
page_html = get_page_html(url)
if check_item_in_stock(page_html):
print("In stock")
else:
print("Out of stock")

while True:
check_inventory()
time.sleep(60)```


Подробнее здесь: https://stackoverflow.com/questions/644 ... s-in-stock
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»