使用Requests和BeautifulSoup-Python返回不带文本的标记
我试图捕获此页面上的访问次数,但python返回的标记没有文本 这就是我所做的使用Requests和BeautifulSoup-Python返回不带文本的标记,python,web-scraping,beautifulsoup,python-requests,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 = BeautifulSo
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"})
您试图获取的值由javascript填充,因此在这种情况下,
beautfulsoup
或请求
不起作用
您需要使用类似于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>]
[385]
Python是否必须打开Firefox才能检索信息?您可以使用Firefox“headless”,也可以使用另一个带有selenium的webdriver,但您需要一个能够呈现javascript的环境。什么是headless?您的代码如何更改代码保持不变,下面是一篇关于在Ubuntu上使用selenium运行Firefox headless的帖子