python 学习 爬取证券之星的股票信息
选择原因,数据好获取,便于操作!
第一步,找到股票相关的信息,先去东方财富网,找到股票的代码查询一览表网站
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190914212532135.png
在这里,我们能找到所以的股票信息,比如名称,代号等等!!
然后,我们来到证券之星网站,随便找一只股,
我们发现,所有的股票的url 都是以 ‘https://stock.quote.stockstar.com/’+ 股票代码+ ".shtml"的形式构成,因此,我们只需要在东方财富网中找到所有的股票代码,并获取到哟个列表中,后面再通过遍历就可以将所有的股票网页获取到,因此,我们先建立主函数,获取所有的股票代码!!!
#该爬虫是针对 证券之星这个网站爬取数据的
#该爬虫分为四个函数,一个主函数(main),三个作用函数!
#注意,少用[''' ''']这样的方式注释,会出现bug---->except an indented block
#导入库
import requests
from bs4 import BeautifulSoup
import traceback
import re
def getHTMLText(url, code="utf-8"):
#该函数是获取网页的函数,主要负责获取每次改变之后的网页数据
#该函数是一个爬虫模板
try:
head={}
head['User-Agent']='Mozilla/5.0'
#伪装,比较简单
r = requests.get(url,headers=head,timeout = 30)
#r只是一个单纯的返回,无实质数据,r.text中才是
#print(url)
#print(r.status_code)
#判断是否成功获取网页
r.encoding = code #减少时间,优化,不算很懂
return r.text #返回爬取网页中的数据
except:
return ""
def getStockList(lst, stockURL):
在东方财富网的网页源代码中,我们发现如上图
因此,我们可以BeautifulSoup中的find_all()找到我们需要的数据
#在东方财富网网页源代码中,我们发现,股票信息都存储在a标签下,所以,我们用
#filename.find_all()函数,将a标签下的信息都保存在a列表下
#首先,这个是爬取东方财富网的股票信息的函数
#但其实很多网页与此类似
html = getHTMLText(stockURL,"GB2312")
#获取网页链接和和他的编码方式!自己去网站查的,不同网站不同
soup = BeautifulSoup(html, 'html.parser')
#对网页进行解析,可以用soup.prettify()将网页规则化,整齐化,如下
soup.prettify()
a = soup.find_all