Я сейчас работаю над своим квантовым проектом. Вот что я делаю: мне нужны данные из первых рук для работы, у меня есть способ загрузки исходных csv-файлов, однако это не лучший способ, потому что я не хочу бомбить серверы, скажем, каждые два или три дня с загрузкой 1GB.
У меня есть сборник всех данных за 5 лет. Я хочу написать код, который может обновлять новые записи и pd.concat()
со старыми, что является более эффективным способом сделать это.
это URL и код, который у меня есть:
url = 'http://quotes.money.163.com/service/chddata.html?code=1000001&start=20200101&end=20200401'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) '
'AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/63.0.3239.132 Safari/537.36 QIHU 360SE'
}
response = requests.get(url, headers=headers).content
soup = bs4.BeautifulSoup(response, 'lxml')
content = soup.select('p')[0]
и он возвращает:
<p>日期,股票代码,名称,...,流通市值,成交笔数
2020-04-01,000001,平安银行,...,2.50142285572e+11,2.50140272863e+11,32484
2020-03-31,000001,平安银行,...,2.48395752934e+11,2.48393754278e+11,32700
2020-03-30,000001,平安银行,...,2.51112581482e+11,2.51110560966e+11,37324
<..>
2020-01-06,000001,平安银行,...,3.3125902364e+11,3.31256358245e+11,48856
2020-01-03,000001,平安银行,...,3.33393674642e+11,3.33390992071e+11,58875
2020-01-02,000001,平安银行,...,3.2737784e+11,3.27375205834e+11,67692
</p>
моя следующая строка кода поражает меня проблемами:
df1 = pd.DataFrame(content.prettify())[0]
или другим подходом:
soup = bs4.BeautifulSoup(response, 'lxml').get_text()
df1 = pd.DataFrame(soup)
возвращает :
ValueError: DataFrame constructor not properly called!
Я не совсем уверен, как решить эту проблему. Не могли бы вы взглянуть на это? Спасибо.
Мой альтернативный способ - загрузить все последние записи на мой жесткий диск, можно их объединить.