获取股票列表的网页:http://www.bestopview.com/stocklist.html
获取股票信息的网站:https://www.laohu8.com/stock/
- List item
import requests
import re
from bs4 import BeautifulSoup
#import time
stocklisturl = 'http://www.bestopview.com/stocklist.html' # 获取股票代码列表的网站
slist = [] # 存放股票代码
sinfolist = [] # 存放每只股票的信息
url = 'https://www.laohu8.com/stock/'
def getHtml(url): # 获取整个网页代码
kv = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0'}
r = requests.get(url, headers=kv, timeout=30)
r.raise_for_status()
r.encoding = 'utf-8'
soup = BeautifulSoup(r.text, 'html.parser')
return soup.prettify()
def getstocklist(slist, html): # 获取股票代码列表
slistpre = re.findall(r'\?stockcode\=[\d]*\"', html)
for i in range(len(slistpre)):
slist.append(slistpre[i][-7:-1])
# 根据股票编号获得股票信息
def getstockinfo(slist, sinfolist):
count = 0
num = 30
for i in range(num):
try:
sinfolist.append(['股票编号:{}'.format(slist[i])])
html = getHtml(url + slist[i])
soup = BeautifulSoup(html, 'html.parser')
info = soup.body.script.prettify()
# 获取股票名
nameCN = re.findall(r'\"nameCN\"\:\".*?\"', info)
sinfolist[i].append('名称:{}'.format(nameCN[0][10:-1]))
# 当前价格
latestPrice = re.findall(r'\"latestPrice\":[\d\.]*\,\"', info)
sinfolist[i].append('当前价格:{}'.format(latestPrice[0][14:-2]))
# 变动率 "changeRate":0,"
changeRate = re.findall(r'\"changeRate\":[\d\.\-]*\,\"', info)
sinfolist[i].append('变动率:{}'.format(changeRate[0][13:-2]))
count += 1
print('\r当前进度{:.2f}%'.format(count/num*100), end='')
except:
count +=1
print('\r当前进度{:.2f}%'.format(count / 20 * 100), end='')
sinfolist[i].append('异常')
print()
def printStockInfo(sinfolist):
for i in range(len(sinfolist)):
if sinfolist[i][1] != '异常':
for j in range(len(sinfolist[i])):
print(sinfolist[i][j], end='\t')
print('')
def main():
getstocklist(slist, getHtml(stocklisturl))
getstockinfo(slist, sinfolist)
printStockInfo(sinfolist)
main()
输出结果:
E:\python\python.exe G:/pytest/股票爬虫.py
当前进度100.00%
股票编号:600000 名称:浦发银行 当前价格:10.09 变动率:-0.0069
股票编号:600004 名称:白云机场 当前价格:11.96 变动率:-0.005
股票编号:600005 名称:武钢股份 当前价格:3.71 变动率:0
股票编号:600006 名称:东风汽车 当前价格:7.19 变动率:-0.0042
股票编号:600007 名称:中国国贸 当前价格:23.15 变动率:0.0447
股票编号:600008 名称:首创股份 当前价格:2.99 变动率:-0.0066
股票编号:600009 名称:上海机场 当前价格:47.16 变动率:-0.0099
股票编号:600010 名称:包钢股份 当前价格:1.62 变动率:0.0318
股票编号:600011 名称:华能国际 当前价格:4.26 变动率:0.024
股票编号:600012 名称:皖通高速 当前价格:6.92 变动率:-0.0057
股票编号:600015 名称:华夏银行 当前价格:6.44 变动率:0
股票编号:600016 名称:民生银行 当前价格:4.68 变动率:-0.0021
股票编号:600017 名称:日照港 当前价格:2.74 变动率:0.0037
股票编号:600018 名称:上港集团 当前价格:4.78 变动率:0.0084
股票编号:600019 名称:宝钢股份 当前价格:7.88 变动率:0.0155
股票编号:600020 名称:中原高速 当前价格:3.41 变动率:-0.0058
股票编号:600021 名称:上海电力 当前价格:7.32 变动率:0.0209
股票编号:600022 名称:山东钢铁 当前价格:1.79 变动率:0.0229
股票编号:600023 名称:浙能电力 当前价格:3.63 变动率:0.0083
股票编号:600026 名称:中远海能 当前价格:6.23 变动率:0.0163
股票编号:600027 名称:华电国际 当前价格:3.46 变动率:0.0206
股票编号:600028 名称:中国石化 当前价格:4.36 变动率:0.0046
股票编号:600029 名称:南方航空 当前价格:6.66 变动率:-0.006
股票编号:600030 名称:中信证券 当前价格:24.61 变动率:-0.018
股票编号:600031 名称:三一重工 当前价格:28.89 变动率:-0.0276
股票编号:600033 名称:福建高速 当前价格:2.75 变动率:0.0036
股票编号:600035 名称:楚天高速 当前价格:3.06 变动率:0
股票编号:600036 名称:招商银行 当前价格:54.11 变动率:-0.0245
Process finished with exit code 0