Web抓取:使用bs4抓取数据时获取'\ n'标签

阿普尔夫

我正在尝试从Wikipedia页面Link删除表格

我在创建数据框时遇到错误,因为当我用分隔各列以保存在csv中时,我得到了/ n标记

示例:row1输出为

',Navi Peth英国n,英国政府n,1818 +,n,Navi(马拉地语:新)n'

我不明白为什么我会得到这个\ n以及如何删除它。我认为由于此\ n在创建数据框时出现错误:

标记数据时出错。C错误:第2行中应有1个字段,看到2

我的代码:

import requests
from bs4 import BeautifulSoup
import pandas as pd
page1 = requests.get('https://en.wikipedia.org/wiki/Peths_in_Pune').text
soup1 = BeautifulSoup(page1, 'lxml')
table = soup1.find('table',{'class':'wikitable sortable'})
#table
table1=""
for tr in table.find_all('tr'):
    row1=""
    for tds in tr.find_all('td'):
        row1=row1+","+tds.text
    table1=table1+row1[1:]
row1

',Navi Peth英国n,英国政府n,1818 +,n,Navi(马拉地语:新)n'

进一步 :

file=open("data1.csv","wb")
file.write(bytes(table1,encoding="ascii"))
df = pd.read_csv('data1.csv', header=None)
df

标记数据时出错。C错误:第2行中应有1个字段,看到2

PS:我想要的结果是Wiki表的第一列

αԋɱҽԃαμєяιcαη

单发,您可以使用以下pandas read_html功能执行此操作

import pandas as pd

df = pd.read_html("https://en.wikipedia.org/wiki/Peths_in_Pune")[1]

print(df)

df.to_csv("data.csv", index=False)

输出:在线查看

在此处输入图片说明

对于第一列

target = df['Peth Naam'].to_list()

print(target)

输出:

['Kasba Peth', 'Guruwar Peth', 'Somwar Peth', 'Mangalwar Peth', 'Shukrawar Peth', 'Raviwar Peth', 'Shaniwar Peth', 'Bhavani Peth', 'Ghorpade Peth', 'Budhwar Peth', 'Ganesh Peth', 'Sadashiv Peth', 'Narayan Peth', 'Rasta Peth', 'Nana Peth', 'Ganj Peth(later renamed to Mahatma Phule Peth)', 'Navi Peth']

现在回到真正的问题:

采用 item.get_text("\n", strip=True)

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章