Я пытаюсь работать с web-Crawler в python, чтобы напечатать количество рекомендованных facebook. например, в этой статье из sky-news (http://news.sky.com/story/1330046/are-putins-little-green-men-back-in-ukraine) есть около 60 отзывов facebook. Я хочу напечатать это число в программе python с помощью веб-искателя. я пытался сделать это, но он не печатает ничего:Веб-искатель для facebook в python
import requests
from bs4 import BeautifulSoup
def get_single_item_data(item_url):
source_code = requests.get(item_url)
plain_text = source_code.text
soup = BeautifulSoup(plain_text)
# if you want to gather information from that page
for item_name in soup.findAll('span', {'class': 'pluginCountTextDisconnected'}):
try:
print(item_name.string)
except:
print("error")
get_single_item_data("http://news.sky.com/story/1330046/are-putins-little-green-men-back-in-ukraine")
Если ничего не печатает, то либо все 'item_name.string's являются' '' 'или' soup.findAll' возвращает пустой. Так почему бы вам не попробовать простую отладку, например 'found = soup.findAll (...); печать (найдено) '? – OJFord
Если он ничего не печатает, очевидно, что цикл 'for' выполняет 0 раз, что означает, что' soup.findAll' ничего не возвращает, а это значит, что с этим классом нет элементов ''. Итак ... глядя на «суп», что заставляет вас думать, что такие элементы существуют? Можете ли вы опубликовать урезанный пример документа HTML, который, по вашему мнению, должен работать с этим кодом, но не так ли? (См. [MCVE] (http://stackoverflow.com/help/mcve).) – abarnert
Кроме того, меня беспокоит, что вы используете 'findAll', который был« фактически устаревшим »именем в конце BS 3.x дней, и теперь является «наследием». Это означает, что вы копируете и вставляете какой-то действительно древний код (или после очень устаревшего учебника), и если это так, скорее всего, будет много проблем. – abarnert