python 抓取上交所、深交所互动版块的投资者提问(散户评论)

本文介绍如何使用Python爬虫抓取上交所和深交所的互动平台,以获取散户对股票的提问,通过jieba进行文本分析,筛选热点股票评论和高频词汇。目标是监测热点事件,但可能需人工分析评论涉及的具体事件。
摘要由CSDN通过智能技术生成

股票价格会受到各种小道消息的干扰,而这种小道消息对量化来讲很难控制(除非时时刻刻对网络所有资源进行监控,而这不现实)。

散户通常是小道消息的追捧者,所以我的想法是设计一个针对散户的爬虫。


 

思路:东方财富股吧有一个问董秘栏目,是散户和上市公司沟通的平台。个股的小道消息散播后,经常会有散户到问董秘栏目对传闻进行求证。

与问董秘类似的平台还有:上证e互动 和 深圳互动易

经过比较,问董秘平台是对上证e互动深证互动易的汇总,但问董秘有两个问题:一是更新不及时;二是只显示已回复的问题。待董秘回复完并更新到该平台,则事件(传闻)的影响可能已经释放。

所以最终选择从上证e互动(http://sns.sseinfo.com/);深圳互动易(http://irm.cninfo.com.cn/szse/index.html)读取原始提问。

程序分为两个部分:第一部分利用python抓取上交所和深交所评论;第二部分利用jieba包进行文本分析,筛选出热门股票的评论和高频词汇。


 

注意:本程序只筛选了热点股票的评论和高频词汇,并没有进行词性分析。每天大概筛选出10-20只股票及其热点评论,需要人工对评论所涉及的事件进行具体分析。

突发事件是低频事件。每天筛选出股票并对评论进行分析后,很有可能做无用功。但一旦重大传闻出现,该程序可能就起到及时提醒的作用。

   


 

 

第一部分:抓取

1.来源1:上证e互动平台

2.来源2: 深证互动易

3.其他说明:之抓取csi800。利用了本地数据库。复制代码时,需要修改股票池==》line29:读取800成分股

 

  1 # -*- coding:utf-8 -*-
  2 from selenium import webdriver
  3 import time
  4 from selenium.webdriver.common.keys import Keys
  5 from bs4  import BeautifulSoup
  6 import re
  7 import datetime
  8 import pandas as pd
  9 import jieba.analyse
 10 import MySQLdb as mdb
 11 import requests
 12 from bs4 import BeautifulSoup
 13 import bs4
 14 
 15 chrome_options = webdriver.chrome.options.Options();
 16 chrome_options.add_argument('--headless')
 17 driver = webdriver.Chrome(chrome_options=chrome_options)
 18 
 19 def main():
 20     #0.0 时间初始化
 21     today = datetime.datetime.now().date();
 22     tradedays=get_tradecalendar(today);
 23     if today not in tradedays:
 24         lastday = tradedays[-1]
 25     else:
 26         lastday=tradedays[tradedays.index(today)-1]
 27 
 28     ##1.0 读取800成分股
 29     members_800=get_index800(today);
 30     h=0;
 31     print 'crawler start'
 32     ##上证e互动 和 深交所互动易
 33     Failed_reading=[];Data=pd.DataFrame([]);j=0
 34     for i in members_800:
 35         code=i[0:6];        exchange=i[7:];
 36         h=h+1;print h,code
 37         if exchange=='SH':
 38             try:
 39                 x=get_ask_from_SHExchange(code,lastday,today)
 40                 if len(x) == 0:
 41                     continue
 42                 else:
 43                     x['code'] = i;
 44                     Data = Data.append(x)
 45             except :
 46                 Failed_reading.append(i)
 47 
 48         elif exchange=="SZ":
 49             x=get_ask_from_SZExchange(code,lastday,today);
 50             if len(x)==0:
 51                 continue
 52             else:
 53                 x['code']=i;
 54                 Data = Data.append(x)
 55         else:
 56             continue;
 57     Data.index=range(len(Data.index))
 58     Data.to_csv('comments_'+today.strftime("%Y%m%d")+'.xls',index=False,encoding='utf-8_sig')
 59     print 'failed reading:', Failed_reading
 60 
 61 def main1():
 62     today = datetime.datetime.now().date();
 63     tradedays = get_tradecalendar(today);
 64     if today not in tradedays:
 65         today=tradedays[-1];
 66     lastday = tradedays[tradedays.index(today) - 1]
 67     print     get_ask_from_SHExchange('600000',lastday,today)
 68 
 69 ###读取上交所评论
 70 def get_ask_from_SHExchange(code,yesterday,today):
 71     # driver = webdriver.Chrome()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值