【爬虫实战】8基础Python网络爬虫——股票数据定向爬虫(MOOC学习笔记)

10 篇文章 3 订阅
订阅专栏

1、股票数据定向爬虫”实例介绍

(1)功能描述:

  • 目标:获取上交所和深交所所有股票的名称和交易信息
  • 输出:保存到文件中

技术路线:requests‐bs4‐re

候选数据网站的选择:

  • 新浪股票:http://finance.sina.com.cn/stock/
  • 百度股票:https://gupiao.baidu.com/stock/

(2)理解网站的选取过程

选取原则:股票信息静态存在于HTML页面中,非js代码生成,没有Robots协议限制

选取方法:浏览器F12,源代码查看等

选取心态:不要纠结于某个网站,多找信息源尝试

数据网站的确定如下:

获取股票列表:

  • 东方财富网:http://quote.eastmoney.com/stocklist.html

获取个股信息:

  • 百度股票:https://gupiao.baidu.com/stock/
  • 单个股票:https://gupiao.baidu.com/stock/sz002439.html

(3) 程序的结构设计

步骤1:从东方财富网获取股票列表
步骤2:根据股票列表逐个到百度股票获取个股信息
步骤3:将结果存储到文件

个股信息采用键值对维护

2、股票数据定向爬虫实例编写

在这里插入图片描述
发现视频里面东方财富网打开没有静态的数据可以用,以及百度股票打不开了,参考 【MOOC】【实例】–股票数据定向爬取,使用以下两个网站:

  • 获得个股信息:https://www.laohu8.com/stock/600210
  • 获取列表:http://app.finance.ifeng.com/list/stock.php?t=ha&f=chg_pct&o=desc&p=1

在这里插入图片描述

import requests
from bs4 import BeautifulSoup
import re
import traceback


def getHTMLText(url):
    try:
        r = requests.get(url, timeout=30)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except:
        print('Error!')


def getStockList(lst, stockURL):
    html = getHTMLText(stockURL)
    soup = BeautifulSoup(html, 'html.parser')
    a = soup.find_all('a')
    for i in a:
        try:
            href = i.attrs['href']
            string = re.findall(r'[s][h]\d{6}', href)[0].replace('sh', '')
            if lst == []:
                lst.append(string)
                continue
            if lst[-1] == string:
                continue
            else:
                lst.append(string)
        except:
            continue


def getStockInfo(lst, stockURL, fpath):
    regex_symbol = r'\"symbol\":\"\d{6}\"'
    regex_name = r'\"nameCN\":\".*?\"'
    regex_latestPrice = r'\"latestPrice\":[\d\.]*'
    count = 0
    total_list = []
    for stock in lst:
        url = stockURL + stock
        html = getHTMLText(url)
        try:
            if html == '':
                continue
            stockInfo = []
            for match in re.finditer(regex_symbol, html):
                stockInfo.append(match.group(0).replace("\"symbol\":",""))
            for match in re.finditer(regex_name, html):
                stockInfo.append(match.group(0).replace("\"nameCN\":",""))
            for match in re.finditer(regex_latestPrice, html):
                stockInfo.append(match.group(0).replace("\"latestPrice\":",""))

            with open(fpath, 'a', encoding='utf-8') as f:
                tmpl = '{0:^10}{1:{3}^6}{2:^8}\n'
                if count == 0:
                    string = tmpl.format('代码','股票名称','最新价',chr(12288))
                else:
                    string = tmpl.format(str(stockInfo[0]).replace('\"',''), str(stockInfo[1].replace('\"','')), str(stockInfo[2]),chr(12288))
                f.write(string)
                
            count += 1
        except:
            traceback.print_exc()       # 输出详细的异常信息
            continue


def main():
    stock_list_html = 'http://app.finance.ifeng.com/list/stock.php?t=ha&f=chg_pct&o=desc&p=1'
    stock_info_url = 'https://www.laohu8.com/stock/'
    output_file = 'E://Users/Yang SiCheng/PycharmProjects/Graduation_Project/StockList.txt'
    slist = []
    getStockList(slist, stock_list_html)
    getStockInfo(slist, stock_info_url, output_file)
    # print(slist)

if __name__ == '__main__':
    main()

最终在目标路径下得到了一个txt文件:
在这里插入图片描述
程序运行的时候大多数时候都要等着——如何提高用户体验?

  • 速度提高:编码识别的优化
    r.apparent_encoding需要分析文本,运行较慢,可辅助人工分析
code = 'utf-8'
r.encoding = code
  • 体验提高:增加动态进度显示
    \r 表示将光标的位置回退到本行的开头位置
            with open(fpath, 'a', encoding='utf-8') as f:
                tmpl = '{0:^10}{1:{3}^6}{2:^8}\n'
                if count == 0:
                    string = tmpl.format('代码','股票名称','最新价',chr(12288))
                else:
                    print('\r当前进度:{:.2f}%'.format(count*100/len(lst)),end='')
                    string = tmpl.format(str(stockInfo[0]).replace('\"',''), str(stockInfo[1].replace('\"','')), str(stockInfo[2]),chr(12288))
                f.write(string)

在这里插入图片描述

3、小结

采用requests‐bs4‐re路线实现了股票信息爬取和存储,实现了展示爬取进程的动态滚动条

互联网金融爬虫怎么写-第二课 雪球网股票爬虫(正则表达式入门)
05-23
系列教程《互联网金融爬虫怎么写》第一课,详细讲解了如何开发爬虫爬取一些有名的电商网站数据。对于学习爬虫的开发者有很大帮助,内含大量可直接运行的源码。 第五课主要以爬取股票网站上的信息为例,主要讲解了爬虫里经常使用的正则表达式。
Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储
07-29
Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储,很有参考借鉴意义
Python爬虫实战(基础篇)—15获取东方财富网股票数据—写入csv(附完整代码)
最新发布
weixin_42636075的博客
04-10 2826
Python爬虫实战(基础篇)—15获取东方财富网股票数据—写入csv(附完整代码)
python如何爬虫股票数据_python爬虫实例,股票数据定向爬虫
weixin_39876877的博客
11-23 527
前言我服了,这几天,怎么涨两天还不够跌一次,害。希望这个可以帮到自己!“股票数据定向爬虫”实例介绍功能描述目标:获取上交所和深交所所有股票的名称和交易信息输出:保存到文件中技术路线:requests‐bs4‐re候选数据网站的选择新浪股票:http://finance.sina.com.cn/stock/百度股票:https://gupiao.baidu.com/stock/选取原则:股票信息静态...
爬虫股票数据定向爬虫
bakk0615的博客
11-25 225
功能描述 *目标:获取上交所和深交所所有股票的名称和交易信息 *输出:保存到文件中 *技术路线:requests-bs4-re 候选数据网站的选择: 新浪股票:https://finance.sina.com.cn/stock/ 百度股票:https://gupiao.baidu.com/stock/ 股票代码一览表:htt...
Python爬虫实战股票数据定向爬虫
weixin_33749242的博客
08-01 559
功能简介 目标: 获取上交所和深交所所有股票的名称和交易信息。 输出: 保存到文件中。 技术路线: requests—bs4–re 语言:python3.5 说明 网站选择原则: 股票信息静态存在于html页面中,非js代码生成,没有Robbts协议限制。 选取方法: 打开网页,查看源代码,搜索网页的股票价格数据是否存在于源代码中。 如打开新浪股...
股票数据定向爬虫
ur_ytii的博客
08-02 1519
功能描述:获取上交所和深交所所有股票的名称和交易信息,将输出保存到文件中 候选数据网站的选择原则:股票信息需静态存在于HTML页面中,非js代码生成没有Robots协议限制。 步骤: 1.从东方财富网获取股票列表 2.根据股票列表逐个到百度股票获取个股信息 3.将结果储存到文件 import requests from bs4 import BeautifulSoup impo...
Python网络爬虫信息提取mooc代码实例
12-22
这篇文章主要介绍了python网络爬虫与信息提取mooc,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考 实例一–爬取页面 import requests url=...
数据作业,python MOOC数据爬虫
12-10
运行环境为windows,需要安装python编辑器,及合适版本Chorme浏览器,可爬取课程、评论、学生相关信息,大数据作业。仅供参考,严禁进行非法用途。
MOOC_北理_python爬虫学习_3(Beautiful Soup库相关)
12-20
Beautiful Soup 库 Beautiful Soup 的使用。 >>> from bs4 import BeautifulSoup...>>> r = requests.get("http://python123.io/ws/demo.html") >>> demo = r.text >>> from bs4 import BeautifulSoup >>> soup = Beaut
python股票数据爬虫
12-08
爬取股票历史记录,数据源为新浪股票,用于股票趋势分析
Python股票数据定向爬虫
Drchen
04-25 3438
import requests from bs4 import BeautifulSoup import traceback import re def getHTMLText(url): try: r = requests.get(url) r.raise_for_status() r.encoding = r.apparent_encoding return r.text except: re...
python爬虫模拟登录超星学习
05-04
要模拟登录超星学习通,你需要先了解超星学习通的登录方式。超星学习通的登录方式有两种:账号密码登录和扫码登录。账号密码登录需要你模拟表单提交,扫码登录需要你模拟二维码的生成和扫描。 以下是账号密码登录的...

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 数据可视化1——R 语言+pycharm环境配置、 HTML、CSS、JavaScript 239095
  • 【爬虫实战】9应用Python网络爬虫——利用Post定向爬取下载慕课MOOC视频 42898
  • 【20211005】Praat 基本用法 18393
  • 【PyTorch】9 序列到序列Transformer实战——nn.Transformer、nn.TransformerEncoder、PositionalEncoding 12903
  • 【语音信号处理】1语音信号可视化——时域、频域、语谱图、MFCC详细思路与计算、差分 12120

分类专栏

  • 小白学习 25篇
  • 【深度学习】 14篇
  • 【自然语言处理】 19篇
  • 【课程学习】 11篇
  • 【语音处理】 5篇
  • 【爬虫】 10篇
  • 【文本识别】 1篇
  • 【数据可视化】 3篇

最新评论

  • 【爬虫实战】7基础Python网络爬虫——淘宝商品比价定向爬虫(MOOC学习笔记)

    m0_74934465: 不显示数据怎么办呀

  • 【PyTorch】3 AI诗人RNN实战(LSTM)——完成诗歌剩余部分、生成藏头诗

    Nain09: 感谢作者分享笔记:D写得很清晰。

  • 【PyTorch】12 生成对抗网络实战——用GAN生成动漫头像

    ha1111haha: 请问博主,我在训练的时候在pycharm工作区出现了200it [01:09, 2.86it/s]这个红字,它在代码哪里体现啊?可以修改吗

  • 【PyTorch】12 生成对抗网络实战——用GAN生成动漫头像

    nameGaogao: 问一下 这个要运行多久?

  • 【PyTorch】12 生成对抗网络实战——用GAN生成动漫头像

    nameGaogao: 没cuda很慢

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • 【20231125】文献翻译:GestureDiffuCLIP:带有 CLIP Latents 的手势扩散模型
  • 【20220605】文献翻译:高维数据动态可视化研究综述
  • 【20220705】文献翻译——MISA: 多模态情感分析的模态不变和特定表征
2023年4篇
2022年12篇
2021年77篇
2018年1篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

PHP网站源码红河百姓网标王资阳设计网站价格苏州网站优化按天计费公司自贡网站优化排名报价普洱阿里店铺托管价格马鞍山外贸网站制作哪家好九江SEO按天计费哪家好荆州网站推广方案多少钱吉祥企业网站制作公司曲靖百度网站优化报价雅安百度关键词包年推广中山关键词按天计费株洲关键词按天收费推荐巴中网站优化按天扣费哪家好诸城网络营销济源网络广告推广报价海南网站设计模板莱芜营销网站多少钱株洲设计公司网站公司茂名营销网站哪家好德州百度网站优化排名多少钱咸阳seo排名价格唐山网站优化推广价格钦州百度爱采购丹竹头网站seo优化多少钱黄南seo网站优化报价马鞍山品牌网站设计报价揭阳阿里店铺托管多少钱林芝网站关键词优化推荐民治网站优化按天扣费公司歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化