python3爬虫实战二:股票信息抓取及存储

本文介绍使用Python3爬虫从东方财富网获取上海股票代码,通过百度股市通抓取股票名称及交易信息,最后将数据存储到txt文件或MongoDB数据库。涉及requests、BeautifulSoup和正则表达式等技术。
摘要由CSDN通过智能技术生成

参考:http://python.jobbole.com/88350/?utm_source=blog.jobbole.com&utm_medium=relatedPosts#article-comment

任务:

1. 从东方财富网获取所有的上海股票的代码信息

2.对获得代码信息通过百度股市通网站对其进行解析抓取股票名称及交易信息

3.对所抓取的信息存储到txt文件或者mongodb数据库内


准备工作:

1.第三方库、requests、BeautifulSoup、re 、mongodb(可选)、Pool(可选)

2.第三方软件 MongoDB、Robo 3T(可选)

语言:python3.5


前提说明:

网站选取规则:股票信息应该存在静态的html页面,非js加载,不然直接提取不出

如何查看是否为静态加载,我们只需要打开网页源码,查询即可。如下所示

第一步:打开股票代码查询的网址(http://quote.eastmoney.com/stocklist.html#sz


随便打开一个,比如我们打开第一个即R003(201000), 进入后网址变为 http://quote.eastmoney.com/sh201000.html

进入网址后,任意空白位置右击鼠标点击查看网页源代码,并在源代码中按Ctrl+F查询我们需要的股票信息,这里我们输入2.000 很明显我们没有找到我们所需要的股票信息。所以这个网址的股票信息并非静态加载。所以选择其他可通过静态网址加载的股票信息网址


通过查询,我们获取了静态加载股票交易信息的网址,即百度股市通,如图所示


该网址可以直接显示股票交易信息。所以这就是我们所需要的静态网址。我们还需要分析两个网址的关系,即对原理进行分析。

原理分析

我们通过分析百度股市通网址可知,每次只需要获取股票的代码即可,每次网址变化均是对应代码的的改变,

如:我们上述图片(中药c)代码为:sh501012   对应的网址是 https://gupiao.baidu.com/stock/sh501012.html

即每次只需更换股票代码,   https://gupiao.baidu.com/stock/+(股票代码)+.html

而刚好我们可以通过通过东方财富网:http://quote.eastmoney.com/stocklist.html#sz  获取各个股票的代码,只需要把代码提取出来再放到百度股市通内网址即可获取每只股票的交易信息了。 那么我们就可以开始进行信息的抓取了。


一、从东方财富网获取所有的上海股票的代码信息

(1) 对网页进行访问,获取html信息
import requests

headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'}
root_url = "http://quote.eastmoney.com/stocklist.html"
response = requests.get(root_url,headers = headers)   
if response.status_code == 200:
    response.encoding = response.apparent_encoding   # 编码采用网页本身的编码
    print(response.text)
else:
    print('未能打开
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值