使用Requests和BeautifulSoup - Python返回没有文本的标记

时间:2014-09-22 23:50:23

标签: python web-scraping beautifulsoup python-requests

我正在尝试捕获此页面上的访问次数,但python会返回没有文本的标记。

这就是我所做的。

import requests
from bs4 import BeautifulSoup

r = requests.get("http://www.kijiji.ca/v-2-bedroom-apartments-condos/city-of-halifax/clayton-park-west-condo-style-luxury-2-bed-den/1016364514")
soup = BeautifulSoup(r.content)
print soup.find_all("span",{"class":"ad-visits"})

1 个答案:

答案 0 :(得分:2)

您尝试抓取的值由javascript填充,因此beautfulsouprequests在这种情况下无效。

您需要使用selenium之类的内容来获取输出。

from bs4 import BeautifulSoup
from selenium import webdriver

driver = webdriver.Firefox()
driver.get("http://www.kijiji.ca/v-2-bedroom-apartments-condos/city-of-halifax/clayton-park-west-condo-style-luxury-2-bed-den/1016364514")
soup = BeautifulSoup(driver.page_source , 'html.parser')
print soup.find_all("span",{"class":"ad-visits"})

Selenium会返回已呈现的网页来源,然后您可以使用beautifulsoup获取值

[<span class="ad-visits">385</span>]