2016-07-04 2 views
-3

Моя проблема заключается в разборе веб-сайта, а затем при загрузке дерева данных с помощью BS. Как я могу найти содержимое тега <em>? Я пробовалPython BeautifulSoup не может выбрать конкретный тег

for first in soup.find_all("li", class_="li-in"): 
    print first.select("em.fl.in-date").string 

        #or 

    print first.select("em.fl.in-date").contents 

но он не работает. Помощь Pls.

Я ищу автомобили на tutti.ch

Вот весь мой код:

#Crawl tutti.ch 
import urllib 
thisurl = "http://www.tutti.ch/stgallen/fahrzeuge/autos" 
handle = urllib.urlopen(thisurl) 
html_gunk = handle.read() 

from bs4 import BeautifulSoup 
soup = BeautifulSoup(html_gunk, 'html.parser') 

for first in soup.find_all("li", class_="li-in"): 
    if first.a.string and "Audi" and "BMW" in first.a.string: 
     print "Geschafft: %s" % first.a.contents 
     print first.select("em.fl.in-date").string 
    else: 
     print first.a.contents 

Когда он находит БМВ или Ауди он должен проверить, когда был включен автомобиль. Время находится в эм-Tag, как это:

<em class="fl in-date"> Heute <br></br> 13:59 </em>

ответ

-1
first.select("em.fl.in-date").text 

Если предположить, что селектор является правильным. Вы не указали, какой URL вы очищаете, поэтому я не могу быть уверен.

>>> url = "http://stackoverflow.com/questions/38187213/python-beautifulsoup" 
>>> from bs4 import BeautifulSoup 
>>> import urllib2 
>>> html = urllib2.urlopen(url).read() 
>>> soup = BeautifulSoup(html) 
>>> soup.find_all("p")[0].text 
u'My problem is when parsing a website and then loading the data tree with BS. How can I look for the content of an <em> Tag? I tried ' 

После просмотра кода, я сделал следующие изменения, посмотрите:

#Crawl tutti.ch 
import urllib 
thisurl = "http://www.tutti.ch/stgallen/fahrzeuge/autos" 
handle = urllib.urlopen(thisurl) 
html_gunk = handle.read() 

from bs4 import BeautifulSoup 
soup = BeautifulSoup(html_gunk, 'html.parser') 

for first in soup.find_all("li", class_="li-in"): 
    if first.a.string and "Audi" and "BMW" in first.a.string: 
     print "Geschafft: %s" % first.a.contents 
     print first.select("em.fl.in-date")[0].text 
    else: 
     print first.a.contents 
+0

Благодарю вас так много Адама Барнса. Ваш код работает отлично! –

+0

'и« Audi »' всегда будет True –

Смежные вопросы