Я создаю программу на 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
Использование веб-скрапинга для проверки наличия товара на складе ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Невозможно обновить значение «Наличие на складе» или «На складе» через Magento API.
Anonymous » » в форуме C# - 0 Ответы
- 57 Просмотры
-
Последнее сообщение Anonymous
-