【问题标题】:Incorrect number of html elements being returned返回的 html 元素数量不正确
【发布时间】:2019-02-19 20:14:37
【问题描述】:

我正在从以下页面抓取:https://www.pro-football-reference.com/boxscores/201809060phi.htm

我有这个代码:

import requests
from bs4 import BeautifulSoup

url = 'https://www.pro-football-reference.com/boxscores/201809060phi.htm'
r = requests.get(url)
soup = BeautifulSoup(r.text, 'lxml')

tables = soup.findAll("div",{"class":"table_outer_container"})
print (len(tables))

页面上的每个表格都有元素“div”,{“class”:“table_outer_container”}。但是我的 print 语句只返回 1。我认为我的 findAll 语句会将所有这些元素分配给变量“tables”是不是错了?

【问题讨论】:

    标签: python html web-scraping


    【解决方案1】:

    这是因为大多数表格都在 cmets 内,除非您从响应中剔除那些恶性标志-->,<!--,否则您的脚本不会抓取它们。试试下面的。它应该为您提供该页面中的 20 个表格。

    import requests
    from bs4 import BeautifulSoup
    
    url = 'https://www.pro-football-reference.com/boxscores/201809060phi.htm'
    
    r = requests.get(url).text
    res = r.replace("<!--","").replace("-->","")
    soup = BeautifulSoup(res, 'lxml')
    
    tables = soup.findAll("div",{"class":"table_outer_container"})
    print (len(tables))
    

    【讨论】:

    • 完美。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-05
    • 1970-01-01
    • 1970-01-01
    • 2016-09-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多