如何使用python bs4获取Wikipedia表中的第一列值?

朱利叶斯·本·萨本亚诺(Julius Benn Sabeniano)

我正在尝试使用python bs4在Wikipedia中通过网络抓取数据表。但是我被这个问题困扰。获取数据值时,我的代码未获取第一列或索引零。我觉得索引有问题,但我无法弄清楚。请帮忙。

在此处输入图片说明

response_obj = requests.get('https://en.wikipedia.org/wiki/Metro_Manila').text
soup = BeautifulSoup(response_obj,'lxml')
Neighborhoods_MM_Table = soup.find('table', {'class':'wikitable sortable'})

rows = Neighborhoods_MM_Table.select("tbody > tr")[3:8]

cities = []
for row in rows:
    city = {}
    tds = row.select('td')
    city["City or Municipal"] = tds[0].text.strip()
    city["%_Population"] = tds[1].text.strip()
    city["Population"] = float(tds[2].text.strip().replace(",",""))
    city["area_sqkm"] = float(tds[3].text.strip().replace(",",""))
    city["area_sqm"] = float(tds[4].text.strip().replace(",",""))
    city["density_sqm"] = float(tds[5].text.strip().replace(",",""))
    city["density_sqkm"] = float(tds[6].text.strip().replace(",",""))

    cities.append(city)

print(cities)

df=pd.DataFrame(cities)

df.head() 

αԋɱҽԃαμєяιcαη
import requests
from bs4 import BeautifulSoup
import pandas as pd


def main(url):
    r = requests.get(url)
    soup = BeautifulSoup(r.content, 'html.parser')
    target = [item.get_text(strip=True) for item in soup.findAll(
        "td", style="text-align:right") if "%" in item.text] + [""]
    df = pd.read_html(r.content, header=0)[5]
    df = df.iloc[1: -1]
    df['Population (2015)[3]'] = target
    print(df)
    df.to_csv("data.csv", index=False)


main("https://en.wikipedia.org/wiki/Metro_Manila")

输出:在线查看

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用BS4获取属性名称而不是值

如何基于同一表中另一列的值获取一列的所有值?

如何根据第一列中的值将不同的线拉到新的工作表

使用numpy在第一矩阵列中搜索数组,并获取下一列的值

如何使用bs4从网站获取表数据

如何使用python获取同一列中相同值之间的时间差

如何使用bs4在p标签中获取文本

如何从同一表的同一列中获取不同的值-Oracle

如何复制数据透视表的第一列和最后一列的值?

如何针对bs4 scrape定位特定的Wikipedia表元素?

Python BS4抓取表在<td>标签中具有多个值

如何使用Apache POI获取Java中Excel工作表各行的最后一列值

我如何从哈希表中获取一列值

数据表-如何获取第一列值

如何获取表中被调用行的第一列值?

如何获取表的所有组件而没有Jquery中的第一列?

如何从Wikipedia表中获取第一列值的列表?

如何使用bs4 / python从Wikipedia网站获取txt文件中单词的搜索结果?

如何从postgresql中UNION的第一个表中获取一列?

使用 bs4 获取标签属性的值

如何获取foreach循环的第一列/ td值

如何从 html 表中只获取一列值?

Python Bs4:如何根据该行的特定“td”值检索表中的行

如何使用 bs4 在 python 中获取带连字符的标签值?

如何使用Python获取另一列中具有相同值的值的总和?

使用python bs4时如何从嵌套标签中获取信息?

使用python(bs4)从段落中获取不在括号之间的第一个常规链接

使用 PostgreSQL,我如何使用数组中的项目获取第一列的值?

无法在 python 中获取 bs4 表内容