2016-11-27 4 views
0

Я новичок в этом .. К примеру, я не пытаюсь царапать что-то вроде этого (номер 24)Зачистка данных с веб-страницы с использованием BeautifulSoup возвращает None

<td class="score part"> <span class="p1_home>24</span></td> 

What to scrape?

но мой код:

from bs4 import BeautifulSoup 
import requests 

html = requests.get("http://www.rezultati.com/utakmica/jLRSI3m9/#detalji") 

soup = BeautifulSoup(html.text,'html.parser') 

data2 = soup.find('td',{'class':'score part'}) 

print(data2) 

Output

не дает мне

Где я был не так?

+1

Проблема заключается в том, что веб-страница только загружает данные в Ajax таблице. Один пример для вопроса: http://stackoverflow.com/questions/5913280/beautifulsoup-and-ajax-table-problem – gyger

+0

Я предлагаю отметить это как дубликат http://stackoverflow.com/questions/27678485/ scrape-with-beautifulsoup-from-site-that-uses-ajax-pagination-using-python – gyger

ответ

0

У вас была идея правильно, но этот веб-сайт, я думаю, реализовал какой-то javascript, чтобы скрыть ценности, чтобы удержать таких людей, как вы, от соскабливания их сайта. Попробуйте использовать селен, поскольку он может царапать веб-сайт, как это видел бы человек. Дайте мне знать, если вам нужна дополнительная информация.

+0

Вы можете видеть, о чем я говорю. Если вы щелкните правой кнопкой мыши и выберите «источник просмотра», вы не сможете найти значение, о котором вы говорите. Вы можете видеть это, когда вы проверяете элементы. – Jimmy

0

Как уже упоминалось, gyger, таблица загружается через вызов ajax. Использование http-библиотек (запросов, urllib, pycurl, ...) может быть очень затруднено или невозможно использовать для очистки этого сайта. Вы должны уметь поддерживать javascript, альтернативой селену может быть spynner.

1

Я решил проблему, спасибо за вашу помощь

from selenium import webdriver 
driver = webdriver.Chrome() 

driver.get("http://www.rezultati.com/utakmica/jLRSI3m9/#detalji") 

posts = driver.find_elements_by_class_name("p1_home") 
for post in posts: 
    print(post.text) 
Смежные вопросы