【发布时间】:2021-05-29 15:46:20
【问题描述】:
我将下面的代码拼凑在一起。
import requests
from bs4 import BeautifulSoup
from pandas import DataFrame
import itertools
import numpy as np
url_base = "https://finviz.com/quote.ashx?t="
tckr = ['MSFT','AAPL','AMZN']
i = 1
url_list = [(s, url_base + s) for s in tckr]
data_list = []
headers = {'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:76.0) Gecko/20100101 Firefox/76.0'}
for t, url in url_list:
print(i)
i = i + 1
print(t, url)
print('Scrapping ticker {}...'.format(t))
soup = BeautifulSoup(requests.get(url, headers=headers).content, 'html.parser')
#writer.writerow([t])
for row in soup.select('.snapshot-table2 tr'):
data_list.append([td.text for td in row.select('td')])
df = DataFrame(data_list)
所以,最终数据框的形状为 36,12;它包含 3 个形状,每个形状都是 12,12。我猜下面这行代码中发生了一些事情,我并不完全理解它。
data_list.append([td.text for td in row.select('td')])
现在,我的数据看起来像这样。
不知何故,我希望每个股票代码有 72 列数据,所以最终结果如下所示。
【问题讨论】:
标签: python python-3.x dataframe reshape