BS4-“ AttributeError:'NoneType'对象没有属性'text'”

时间:2020-06-19 03:38:16

标签: python beautifulsoup

由于出现以下错误,我无法使用bs4从此网页中提取数据

"AttributeError: 'NoneType' object has no attribute 'text'"

有人可以修改我的代码吗?

这是我的代码

from bs4 import BeautifulSoup
import requests

url = 'https://e-masjid.jais.gov.my/index.php/profail?page=1'

html_content = requests.get(url).text

soup = BeautifulSoup(html_content, 'lxml')

masjid_table = soup.find("table", attrs={"class": "Masjid"})
masjid_table_data = masjid_table.tbody.find_all("tr")

headings = []
for td in masjid_table_data[0].find_all("td"):
    headings.append(td.b.text.replace('\n', ' ').strip())

print(headings)masjid_table = soup.find("table", attrs={"class": "Masjid"})

masjid_table_data = masjid_table.tbody.find_all("tr")

headings = []
for td in masjid_table_data[0].find_all("td"):
    headings.append(td.b.text.replace('\n', ' ').strip())

print(headings)

2 个答案:

答案 0 :(得分:0)

尽管我不知道您想要的输出是什么。.这将为您提供所有的假名。

soup = BeautifulSoup(html_content.text, 'lxml')

masjid_table = soup.find("table", attrs={"id": "pemohon"})
masjid_table_data = masjid_table.tbody.find_all("tr")

headings = []
for row in masjid_table_data:
    headings.append(row.find_all('td')[1].text.replace('\nMASJID', ' ').strip())

您可以尝试在row.find_all('td')[1]处更改索引以获取相应的列。

答案 1 :(得分:0)

属性错误表示您正在调用给定对象不存在的属性。 在您的情况下,requests.get(url)返回无,因此requests.get(url).textNone.text相同,这是无效的。 如果期望如此,请检查请求是否返回某些内容:

result = requests.get(url)
if result:
    string = requests.get(url).text