【问题标题】:I want the text of 'td' but it's giving error Also, I don't the <a> tag (I want to delete it completely only I want the text containing in it)我想要'td'的文本,但它给出了错误另外,我没有 <a> 标签(我想完全删除它,只是我想要包含其中的文本)
【发布时间】:2020-04-02 04:49:13
【问题描述】:

我想从表中检索名称并将它们存储在列表中。 https://www.in.pampers.com/pregnancy/baby-names/article/top-indian-baby-names

但是,我无法获取文本。它返回 'NoneType' object has not attribute 'text'

https://www.in.pampers.com/pregnancy/baby-names/article/top-indian-baby-names

另外,我不希望锚标记包含在名称列表中。我只想要锚标记的文本。

from bs4 import BeautifulSoup
import requests
import lxml

web_page = requests.get("https://www.in.pampers.com/pregnancy/baby-names/article/top-indian-baby-names")

# if requests.status_code == 200:
bs = BeautifulSoup(web_page.text, 'lxml')

tables = bs.findAll("table")

for table in tables:
  for row in table.findAll("tr"):
    print(row.find('td').text)

【问题讨论】:

  • it's giving error: 什么错误?
  • 'NoneType' 对象没有属性 'text' 下面的代码给出了错误

标签: python-3.x beautifulsoup


【解决方案1】:
import pandas as pd

df = pd.read_html(
    "https://www.in.pampers.com/pregnancy/baby-names/article/top-indian-baby-names")

names = []
for item in df:
    names.extend(item['Name'].to_list())

print(names)

输出:

['Aaradhya', 'Adah', 'Adhira', 'Alisha', 'Amoli', 'Anaisha', 'Ananya', 'Anika', 'Anushka', 'Asmee', 'Avni', 'Carina', 'Drishti', 'Hiya', 'Ira', 'Ishana', 'Ishita', 'Kaia', 'Kashvi', 'Keya', 'Kimaya', 'Krisha', 'Larisa', 'Mahika', 'Mayra', 'Mehar', 'Mirai', 'Mishka', 'Naitee', 'Navya', 'Nehrika', 'Neysa', 'Pavati', 'Prisha', 'Ryka', 'Rebecca', 'Saanvi', 'Sahana', 'Sai', 'Saisha', 'Saloni', 'Shanaya', 'Shrishti', 'Sneha', 'Taahira', 'Taara', 'Tanvi', 'Viti', 'Zara', 'Aahva', 'Aadiv', 'Aarav', 'Akanksh', 'Alex', 'Anant', 'Atiksh', 'Ayaan', 'Bhuv', 'Dasya', 'Gian', 'Hem', 'Idhant', 'Ishank', 'Jash', 'Jay', 'Joseph', 'Kabir', 'Kahaan', 'Kairav', 'Kevin', 'Laksh', 'Luv', 'Manan', 'Mohammad', 'Naksh', 'Nimit', 'Nirav', 'Pahal', 'Parv', 'Pranay', 'Rachit', 'Raj', 'Ranbir', 'Raunak', 'Reyansh', 'Rishaan', 'Rishit', 'Rohan', 'Rudra', 
'Rushil', 'Sadhil', 'Sarthak', 'Taarush', 'Taksh', 'Ved', 'Vihaan', 'Vivaan', 'Yash', 'Yug', 'Zuber']

【讨论】:

  • 这是做什么的?他们是男孩名还是女孩名(该页面上有两个表格)?
  • @Selcuk 你读过我想要表格中的名字并将它们存储在一个列表中。 ?和 table.findAll("tr") ?
  • 我不想使用 panda,你能在 Beautifulsoup 中这样做吗?
猜你喜欢
  • 2011-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-18
  • 1970-01-01
相关资源
最近更新 更多