BeautifulSoup不显示标记中的所有元素

时间:2017-09-02 07:58:34

标签: python parsing beautifulsoup

我正在尝试解析this website并在内容框card__body中使用BeautifulSoup.find获取有关自动的信息,但它找不到所有类。我也尝试了webdriver.PhantomJS(),但它也没有显示任何内容。

这是我的代码:

from bs4 import BeautifulSoup
from selenium import webdriver

url='http://www.autobody.ru/catalog/10230/217881/'

browser = webdriver.PhantomJS()
browser.get(url)
html = browser.page_source

soup = BeautifulSoup(html, 'html5lib') 
JTitems = soup.find("div", attrs={"class":"content-box__strong red-text card__price"})
JTitems

w = soup.find("div", attrs={"class":"content-box card__body"})
w

为什么这种方法不起作用?我该怎么做才能获得有关汽车的所有信息?我使用的是Python 2.7。

1 个答案:

答案 0 :(得分:1)

找到您需要信息的table。然后找到所有tr并循环遍历它们以获取文本。

from bs4 import BeautifulSoup
from selenium import webdriver

url='http://www.autobody.ru/catalog/10230/217881/'

browser = webdriver.Chrome()
browser.get(url)
html = browser.page_source

soup = BeautifulSoup(html, 'lxml')

price = soup.find('div', class_='price').get_text()
print(price)

for tr in soup.find('table', class_='tech').find_all('tr'):
    print(tr.get_text())

browser.close()
browser.quit()