从股票列表网页获取股票代码

根据股票代码去股票详情页面获取股票详细信息

1、 股票列表页面

凤凰网财经—股票信息

http://app.finance.ifeng.com/list/stock.php?t=ha&f=chg_pct&o=desc&p=1

2、 股票详细信息

老虎社区—股票详情

股票数据定向爬取思路

1、 查看网站robots协议,查看网站是否可以爬取

2、 查看网页源代码,查看网页信息是否可以直接爬取

3、 爬取网页信息

4、 解析网页,获取页面信息

在HTML页面中

1)      对于非常有特征的数据,可以直接用正则表达式搜索到

2)      信息存在的区域相对固定,则用BeautifulSoup定位标签位置,再用正则表达式获取

5、 将获取的信息储存到文件中

优化代码

1、提高爬虫速度

直接赋值编码

2、提高程序运行体验(运行时间较长的程序)

增加动态精度显示

import requests

from bs4 import BeautifulSoup

import re

import traceback

def getHTMLText(url, code=‘utf-8‘):

try:

r = requests.get(url)

r.raise_for_status()

r.encoding = code

return r.text

except:

print(‘爬取失败‘)

def getStockList(lst, stockURL):

html = getHTMLText(stockURL, ‘GB2312‘)

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

a = soup.find_all(‘a‘)

for i in a:

try:

href = i.attrs[‘href‘]

lst.append(re.findall(r"[s][hz]\d{6}", href)[0]) ## 匹配 a 标签中 href 属性以 s 开头,中间是 h 或 z ,最后是6位数字

except:

continue

def getStockInfo(lst, stockURL, fpath):

## 去掉列表里的重复选项--将列表转换为集合再转换为列表

lst = list(set(lst))

count = 0

for stock in lst:

url = stockURL + stock[-6:]

html = getHTMLText(url)

try:

if html == ‘‘: ## 判断是否空页面

continue

infoDict = {} ## 定义一个字典,存储股票信息

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

stockInfo = soup.find(‘div‘, attrs={‘class‘:‘stock-info‘})

name = stockInfo.find_all(attrs={‘class‘:‘name‘})[0]

price = stockInfo.find_all(attrs={‘class‘: ‘latest‘})[0]

infoDict.update({‘股票名称‘:name.text.split()[0], ‘最新行情‘:price.text.split()[0]})

keyList = stockInfo.find_all(‘dt‘)

valueList = stockInfo.find_all(‘dd‘)

for i in range(len(keyList)):

key = keyList[i].text

val = valueList[i].text

infoDict[key] = val

## 将字典写入文件中

with open(fpath, ‘a‘, encoding=‘utf-8‘) as f:

f.write(str(infoDict) + ‘\n‘)

count = count + 1

## 增加动态进度显示

print(‘\r当前进度:{:.2f}%‘.format(count*100/len(lst)), end=‘‘)

except:

traceback.print_exc() ## 获得发生异常的错误信息

continue

def main():

stock_list_url = ‘http://app.finance.ifeng.com/list/stock.php?t=ha‘

stock_info_url = ‘https://www.laohu8.com/stock/‘

output_file = ‘C:\\try\\StockInfo.txt‘

slist = []

getStockList(slist, stock_list_url)

getStockInfo(slist, stock_info_url, output_file)

main()

php 爬取股票数据库,【实例】--股票数据定向爬取相关推荐

  1. 股票数据定向爬取(可运行) Python网络爬虫与信息提取(北京理工大学—嵩天)

    注意:由于东方财富网与百度股票网站发生变动,所以选择了与原先百度股票类似的股城网作为信息爬取的目标网站.(感谢文章:(4条消息) Python爬虫入门实例八之股票数据定向爬取并保存(优化版)_Mr.Q ...

  2. python爬虫之股票数据定向爬取

    python爬虫之股票数据定向爬取 功能描述 目标:获取上交所和深交所所有股票的名称和交易的信息 输出:保存到文件中 技术路线:requests-bs4-re 前期分析 选取原则:股票的信息静态存在H ...

  3. Python爬虫入门实例八之股票数据定向爬取并保存(优化版)

    文章目录 写在前面 一.准备工作 1.功能描述 2.候选数据网站的选择 3.程序的结构设计 4.本篇选取的数据网站 (1)网站链接 (2)网站内容 二.数据网站分析 1.股票列表的分析 2.个股信息的 ...

  4. python网络爬虫:股票数据定向爬取

    百度股票(https://gupiao.baidu.com/stock/)属于静态网页数据,适合定向数据爬取:新浪股票(http://finance.sina.com.cn/stock/)数据存取在j ...

  5. python爬取股票大单历史记录_定向爬取股票数据——记录一次爬虫实战

    今天是八月2号,自学python爬虫已经一整个月了.不学不理解,真正学了才发现,python不愧是一门博大精深的高级编程语言,我学到现在也才只见识到它冰山一脚,python应用的范围即便相比于c.c+ ...

  6. Python疫起学习·万丈高楼平地起Day09(精简版|浓缩就是精华)爬虫知识附上案例爬取北京地区短租房信息、爬取酷狗TOP500的数据以及爬取网易云音乐热歌榜单

    爬虫知识 Requests库 部分运行结果如下: 有时爬虫需要加入请求头来伪装成浏览器,以便更好地抓取数据.在Chrome浏览器中按F12键打开Chrome开发者工具,刷新网页后找到User-Agen ...

  7. 什么是定向爬取技术,Python爬虫的定向爬取技术需解决哪些问题?

    一.什么是爬虫的定向爬取技术 通俗来说,爬虫的定向爬取技术就是根据设置的主题,对要爬取的网址或者网页中的内容进行筛选.比如我们可以使用正则表达式进行筛选等,筛选之后,再爬取对应的网址中的内容,并可以根 ...

  8. R语言-股票数据库(4)-股票行业和概念板块数据-Wind

    ############################################################################################ ####### ...

  9. R语言-股票数据库(2)-股票日K线信息-未复权

    注:1.此方法获得的股票价格是实际价格,未进行前/后复权        2.只举例深市的获取方法,沪市的同理        3.步骤:先从网上爬取每个股票的交易历史,存为csv格式文件:读取csv文件 ...

最新文章

  1. Linux centos6.5 64下oracle10g_静默安装完整版
  2. Ubuntu 修改mysql的存储目录
  3. 纸上谈兵: 哈希表 (hash table)
  4. python 只取年月日 字符串_Python的数据类型
  5. jmeter http并发测试时报错
  6. python的全局变量能暂存数据吗_【Python】Python之全局变量
  7. python中upper函数有什么用_几个有用的python字符串函数(format,join,split,startwith,endwith,lower,upper)...
  8. Linux3种进程,linux内核获取进程的全路径3种方法
  9. 神经网络的Hello World
  10. 如何在Linux系统列出systemd下所有正在运行的服务
  11. 深入浅出 eBPF|你要了解的 7 个核心问题
  12. ThinkPHP商城分类无限分类遍历数据
  13. 致加西亚的信 名言佳句
  14. 软件测试工程师成长之路:掌握软件测试九大技术主题
  15. 计算机的组成以及其功能
  16. 一个排列是某些对象的有序组合,例如,3124 就是数字 1,2,3,4 的一种可能排列。 如果所有的排列按照数值或者字母序排序,我们称其为一个字典序。 0, 1, 2 的字典排列有:012 021 1
  17. 模型选择准则之AIC和BIC
  18. android基础学习
  19. 聚合支付是下一个财富蓝海!
  20. VS2005编译器选项

热门文章

  1. Cocos2dx lua 2.xpk 3.x偏Mac OS
  2. mac php7.2,MAC下更新自带的PHP版本到7.2
  3. linux 配置使用ftp 使用账号密码登陆失败
  4. Wifi驱动开发-学习笔记(一)
  5. 【LOJ2867】「IOI2018」高速公路收费
  6. 搜索引擎-搜索引擎SEO优化
  7. php读取pdf文件乱码_PHP读取文件,解决中文乱码UTF-8的方法分析
  8. 未来的苹果和谷歌到底哪家强?
  9. 《从零开始搭建游戏服务器》Linux开发环境配置
  10. 制作一个简单HTML宠物猫网页(HTML+CSS)