代码之家  ›  专栏  ›  技术社区  ›  Han Zhengzu

当我使用beautifulsoup刮表时,表中的内容被隐藏了

  •  0
  • Han Zhengzu  · 技术社区  · 8 年前

    这是我的情况的一个例子。

    事实上,网站页面 here 左边有一个表,我想用Python来掌握它。原始html文件的文件结构如下所示:

    enter image description here

    “id=companylist”中存在一些样本的信息。因此,我编写了下面的代码来阅读它们:

    url = 'http://182.148.109.184/gisnavigation!citysuriverPage.action?regioncode=510300#'
    page = requests.get(url, headers={'Referer' : url})
    soup = BeautifulSoup(page.text, 'html.parser')
    table    = soup.find("tbody", {"id": "companylist"})  
    

    然而,输出只是两行字符串,没有有用的信息。

     [<tbody id="companylist">
     </tbody>]
    

    有人知道正确的治疗方法吗?

    1 回复  |  直到 8 年前
        1
  •  1
  •   radzak    8 年前

    如注释中所述,内容由浏览器中运行的JavaScript呈现。您可以使用 Requests-HTML 在幕后运行铬。

    **Code:**
    
    from requests_html import HTMLSession
    
    url = 'http://182.148.109.184/gisnavigation!citysuriverPage.action?regioncode=510300#'
    session = HTMLSession()
    r = session.get(url)
    r.html.render()
    
    table = r.html.find('#companylist')[0]
    print(table.text)
    

    输出:

    富顺首创水务有限公司
    自贡市
    污水厂
    ...
    自贡张家坝氯碱化工有限责任...
    自贡市
    废气
    
    推荐文章