【问题标题】:BeautifulSoup being fussy and seemingly unreasonableBeautifulSoup 挑剔且看似不合理
【发布时间】:2023-02-06 21:12:09
【问题描述】:

我尝试从维基百科页面上抓取一个表格来练习以 CSV 文件格式保存数据,但到目前为止我的尝试被证明是不成功的,因为我遇到了这个持续存在的 BeautifulSoup 错误:

追溯(最近一次通话):
文件“C:\Users\Lenovo.venvs\webscraping\tableexercise.py”,第 14 行,在 <module> 中
对于 trtag.findAll('th') 中的单元格:
^^^^^^^^^^^^^
文件“C:\Users\Lenovo.envs\web scrape\Lib\site-packages\bs4\element.py”,第 2289 行,位于获取属性
提高属性错误( AttributeError:ResultSet 对象没有属性“findAll”。您可能将元素列表视为单个元素。当您打算调用 find() 时,您是否调用了 find_all()?

这是我的代码

import csv   
from urllib.request import urlopen  
from bs4 import BeautifulSoup  
token = urlopen("https://en.wikipedia.org/wiki/Comparison_of_text_editors")  
bsobj = BeautifulSoup(token, "html.parser")   
table = bsobj.findAll("table", {"class": "wikitable"})\[0\]   
trtag = table.findAll("tr")   
for x in trtag:   
l = \[\]   
for cell in trtag.findAll('th'):   
l.append(cell.get_textO())   
print(l)

我需要做的是生成单个单词和句子的列表,以便我可以在我的 csv 文件中对其进行迭代。我尝试附加 trtag 的内容,但只生成了单个字母的列表。无论出于何种原因,BeautifulSoup 也非常挑剔我可以使用 find 和找不到的标签 findAll。它经常会返回None,即使我可以在网站上实际看到标签及其属性(包括更具体搜索的属性也无济于事),一旦我尝试用它做任何事情就会返回一个属性错误多变的。另外,我不知道它是否相关,但 .children.parent 或其中任何一个都不起作用。

我希望有人有类似的问题,可以帮助我解决它。

【问题讨论】:

    标签: python python-3.x web-scraping


    【解决方案1】:

    你的意思是使用:

    for cell in x.findAll('th'):
    

    反而?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-15
      相关资源
      最近更新 更多