Проверка доступности продуктов Amazon с помощью Python

| | | | | |

Как мы знаем, Python — это многоцелевой язык, широко используемый для написания сценариев. Его использование не ограничивается только решением сложных вычислений, но и автоматизацией повседневных задач. Допустим, мы хотим отслеживать наличие какого-либо товара Amazon и закрывать сделку при изменении доступности товара, а также информировать пользователя о наличии по электронной почте. Будет очень весело написать для этого скрипт на Python. Примечание. Установите необходимые библиотеки (согласно коду) перед запуском скрипта. Также обратите внимание, что если продукт в настоящее время недоступен, пользователю не будет отправлено электронное письмо. Идентификатор Asin должен быть предоставлен пользователем для продукта, который он хочет отслеживать.

Работа каждого используемого модуля:
  • -> запросы: используется для получения и публикации HTTP запросы
  • -> время: используется для определения текущего времени, ожидания, сна
  • -> расписание: используется для планирования повторного запуска функции через определенные промежутки времени. Это похоже на «setInterval» в JavaScript.
  • -> smptlib: используется для отправки электронной почты с помощью Python.

# Скрипт Python для проверки доступности продуктов Amazon # импорт библиотек из lxml import html импорт запросов по времени User-Agent`: `Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/42.0.2311.90 Safari/537.36`} # добавление заголовков, чтобы показать, # что вы являетесь браузером, который отправляет запрос GET page = request.get(url, headers = headers) for i in range(20): # потому что непрерывная проверка занимает # миллисекунды или несколько секунд # блокирует ваш запрос sleep(3) # анализ содержимого html doc = html.fromstring(page .content) # проверка доступности XPATH_AVAILABILITY = `//div[@id ="availability"]//text()` RAw_AVAILABILITY = doc.xpath(XPATH_AVAILABILITY) AVAILABIL ITY = ``.join(RAw_AVAILABILITY).strip() if RAw_AVAILABILITY else None return AVAILABILITY def sendemail(ans, product): GMAIL_USERNAME = "YOUR_GMAIL_ID" GMAIL_PASSWORD = "YOUR_GMAIL_PASSWORD" получатель = Receive_email_id body_of_email = ans email_subject = product + ` доступность продукта ` # создает сеанс SMTP s = smtplib.SMTP(`smtp.gmail.com`, 587) # запускаем TLS для безопасности s.starttls() # Аутентификация s.login(GMAIL_USERNAME, GMAIL_PASSWORD) # сообщение для отправки headers = " " .join(["от: " + GMAIL_USERNAME, "тема:" + email_subject, "кому: " + получатель, "MIME-версия: 1.0", "тип контента: текст/html"]) content = headers + " " + body_of_email s.sendmail(GMAIL_USERNAME, получатель, контент) s.quit() def ReadAsin(): # Asin Id - это идентификатор продукта, # который должен быть предоставлен пользователем Asin = `B077PWK5BT` url = "http:// www.amazon.in/dp/" + Asin print ("Обработка: "+url) ans = check(url) arr = [ `Осталось только 1 в наличии.`, `Осталось только 2 в наличии.`, `В наличии .`] print(ans) if ans in arr: # s окончание электронного письма пользователю if # в случае, если продукт доступен sendemail(ans, Asin) # планирование выполнения одного и того же кода несколько раз через каждые 1 минуту def job(): print("Tracking....") ReadAsin() schedule.every (1).minutes.do(job) while True: # запуск всех ожидающих выполнения задач/заданий schedule.run_pending() time.sleep(1) 

Вывод:

Отслеживание.. .. Обработка: http://www.amazon.in/dp/B077PWK5BT В наличии остался только 1 шт. Отслеживание.... Обработка: http://www.amazon.in/dp/B077PWK5BT На складе осталось только 1 шт. Отслеживание.... Обработка: http://www.amazon.in/dp/B077PWK5BT На складе осталось только 1 шт. 

Как создать средство проверки наличия на складе с запросами Python, если используется JavaScript?

Вопрос StackOverflow

Я написал некоторый код, который должен проверять, есть ли товар снова в наличии, и когда он появится, отправить мне электронное письмо, чтобы уведомить меня. Это работает, когда то, что я ищу, находится в html.

Однако иногда определенные объекты загружаются через JavaScript. Как я могу отредактировать свой код, чтобы парсинг веб-страниц также работал с JavaScript?

Это мой код на данный момент:

< код class="hljs language-python">импорт время импорт запросы while True: # Получить URL-адрес страницы IKEA url = `https://www.ikea.com/nl/nl/p/flintan-bureaustoel-vissle-zwart-20336841/` # Получить текст с этой страницы и записать все строчными буквами productpage = request.get(url).text.lower() # Установить строки, которые должны быть на странице если товар недоступен, outofstockstrings = [`не говорит о том, что нужно использовать рычаги`, `все равно, о чем говорит винкель `] # Проверяем, соответствуют ли строки находятся в тексте веб-страницы if любой(x в странице продукта для x в строк, которых нет в наличии): time.sleep(1800) продолжить еще: # отправьте мне электронное письмо и прервите петлю 

Ответ:

Вместо очистки и анализа HTML вы можете использовать неофициальный сток API, который также использует веб-сайт IKEA. Этот API возвращает данные JSON, которые намного легче анализировать, и вы также получите оценки, когда продукт вернется на склад.

Существует даже проект, написанный на javascript/node, который предоставляет вам такую информацию. прямо из командной строки: https://github.com/Ephigenia/ikea-availability-checker< /a>

Вы можете легко проверить наличие кресла во всех магазинах Нидерландов:

npx ikea-availability-checker stock --country nl 20336841 

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method