Может ли кто-нибудь объяснить мне, почему мой код ничего не возвращает в терминал

#python

Вопрос:

По какой-то причине терминал продолжает ничего не возвращать, даже значения none . Я был бы признателен за некоторое разъяснение по этому вопросу.

 import requests
import json
import time
from bs4 import BeautifulSoup
from fake_useragent import UserAgent
 
def monitor():
    source = requests.get ('https://www.topps.com')
    soup = BeautifulSoup(source.content,'lxml')
    for hrefs in soup.find_all('figure', class_='product-item-link'):
        url = "https://www.tops.com/cards-collectibles/topps-now"   hrefs.a.get('href')
        print(url)

monitor()
 

Комментарии:

1. пожалуйста, убедитесь, что ваш код имеет правильный отступ. Также похоже, что у вас есть некоторые импортированные файлы, которые не отображаются. В вашем коде также нет return , поэтому он никоим образом ничего не вернет. Возможно, вы имеете в виду напечатанные

2. Значение hrefs в ссылке, скорее всего, пустое, попробуйте запустить print(soup.find_all('figure', class_='product-item-link') перед циклом, чтобы убедиться, что список не пуст, прежде чем входить в цикл.

3. Я сделаю предположение о том, как это должно быть сделано, и скажу, что проблема просто в том, что soup.find_all() возвращает пустой список. РЕДАКТИРОВАТЬ: Я только что протестировал ваш код, и это именно то, что происходит

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

5. На самом деле, это проще, чем я первоначально прокомментировал. Вы забываете проверить ответ на запрос GET. Вы заметите, что он возвращает HTTP 503. Обычно это означает «Сервер недоступен», однако в данном случае похоже, что сайт блокирует «скребки».