300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > mysql读取股票数据_读取股票数据存储到本地MySQL数据库(一)

mysql读取股票数据_读取股票数据存储到本地MySQL数据库(一)

时间:2019-05-21 20:16:20

相关推荐

mysql读取股票数据_读取股票数据存储到本地MySQL数据库(一)

主要有三个步骤:(1)从东方财富上爬虫读取到所有股票的codelist;(2)从凤凰网的api获取到某只股票历史上所有数据,开盘收盘价,成交量,成交金额,ma均线价格等数据;(3)通过pymysql将获取到的数据存储到本地。

第一个步骤的实现,从EAST_MONEY_URL = '/stocklist.html'处获取stocklist。主要使用

#encoding = uft-8

import requests

from bs4 import BeautifulSoup

import re

class GetStockList(object):

def get_html_text(self, url):

try:

response = requests.get(url)

response.raise_for_status()

response.encoding = 'utf-8'

return response.text#html变量存储读取的网页text

except:

return ''

def get_stock_list(self, url):

html = self.get_html_text(url)

soup = BeautifulSoup(html, 'html.parser')

a = soup.find_all('a')

stock_list = []

for i in a:

try:

href = i.attrs['href']

stock_num = str(re.findall(r"[s][hz]\d{6}",href)[0])

if stock_num:

stock_list.append(stock_num)

except:

continue

return stock_listfind_all()的查找方式可以有多种,第一种按标签方式查找,上面的ul, div, li均是标签;第二种按内容查找,参数为text='xxx';第三种按正则表达式查找。可以跟limit参数限定返回的list的长度,当limit=1时候也就是find()函数了。

查找结果的list每个元素是bs4.element.ResultSet类型,可以继续接find函数,也可以调用attrs属性返回一个dict。

soup.find_all('a')会返回所有标签为a的元素

In [44]: soup.find_all('a', limit=5)

Out[44]:

[�ƾ�,

Ҫ��,

��Ʊ,

�¹�,

��ָ]

In [45]: soup.find_all('a', limit=5)[0].attrs

Out[45]: {'href': '/', 'target': '_blank'}

In [46]: soup.find_all('a', limit=5)[0].attrs['href']

Out[46]: '/'

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。