#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. Обычно это означает «Сервер недоступен», однако в данном случае похоже, что сайт блокирует «скребки».