已解决 这在2.x中是Unicode问题,在升级到3.x时不是问题
我正在尝试学习用Python和BeautifulSoup来将数据导出到可读的电子表格中。我有两个问题:
问题1:我在尝试不同的网站时遇到了多次障碍,遇到商标符号(tm)之类的符号时,我该如何删除该符号或将其编码为允许panda将数据输出到csv的表单?你知道吗
问题2:当我导出数据时(通过省略包含问题1中引用的字符的行),列的顺序不一定是我想要的。如何指定列的列出顺序?你知道吗
问题1解决方案:
问题2解决方案:
是的。你知道吗
import csv
import requests
from bs4 import BeautifulSoup
import pandas
stocksym = []
stockname = []
stockprice = []
data = requests.get('https://finance.yahoo.com/most-active?offset=0&count=100')
soup = BeautifulSoup(data.text, 'html.parser')
div =soup.find('div', { 'id': 'scr-res-table' })
table = div.find('table')
tbody = table.find('tbody')
for tr in tbody.find_all('tr'):
sym = tr.find_all('td')[0].text.strip()
stocksym.append((sym))
name = tr.find_all('td')[1].text.strip()
stockname.append((name))
price = tr.find_all('td')[2].text.strip()
stockprice.append((price))
df = pandas.DataFrame({
"1Sym": stocksym,
"2Name": stockname,
"3Price": stockprice
})
df.to_csv("output.csv", index=False)
print(df)
我期望前100名股票的输出以Sym,Name,Price的顺序导出到csv。你知道吗
实际结果是在第一次遇到不支持的字符时停止,并要求我将数字放在列名之前以获得所需的顺序。你知道吗
在
pandas
中使用read_html
函数会更容易,遇到的问题也会更少。只需安装lxml
库,如果遇到错误,pandas将使用此库进行HTML处理。你知道吗相关问题 更多 >
编程相关推荐