【问题标题】:Using Requests and BeautifulSoup - Python returns tag with no text使用 Requests 和 BeautifulSoup - Python 返回没有文本的标签
【发布时间】:2014-11-17 01:13:16
【问题描述】:

我正在尝试捕获此页面上的访问次数,但 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"})

【问题讨论】:

    标签: python web-scraping beautifulsoup python-requests


    【解决方案1】:

    您尝试抓取的值由 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>]
    

    【讨论】:

    • Python 是否必须打开 Firefox 才能检索信息?
    • 你可以使用 firefox 'headless' 或者你也可以使用另一个带有 selenium 的 webdriver,但是你需要一个环境来渲染 javascript。
    • 无头是什么意思?您的代码将如何变化
    • 代码保持不变,这是一篇关于在 Ubuntu 上使用 selenium 无头运行 Firefox 的帖子installationpage.com/selenium/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-18
    • 2015-08-29
    • 1970-01-01
    • 2020-06-18
    相关资源
    最近更新 更多