python 获取 中国证券网 的公告
来源:互联网 发布:想找个网络兼职 编辑:程序博客网 时间:2024/04/30 10:37
原文地址: http://www.30daydo.com/article/59
中国证券网: http://ggjd.cnstock.com/
这个网站的公告会比同花顺东方财富的早一点,而且还出现过早上中国证券网已经发了公告,而东财却拿去做午间公告,以至于可以提前获取公告提前埋伏。
生成的公告保存在stock/文件夹下,以日期命名。 下面脚本是循坏检测,如果有新的公告就会继续生成。
默认保存前3页的公告。(一次过太多页会被网站暂时屏蔽几分钟)。 代码以及使用了切换header来躲避网站的封杀。
修改
getInfo(3) 里面的数字就可以抓取前面某页数据
这个网站的公告会比同花顺东方财富的早一点,而且还出现过早上中国证券网已经发了公告,而东财却拿去做午间公告,以至于可以提前获取公告提前埋伏。
生成的公告保存在stock/文件夹下,以日期命名。 下面脚本是循坏检测,如果有新的公告就会继续生成。
默认保存前3页的公告。(一次过太多页会被网站暂时屏蔽几分钟)。 代码以及使用了切换header来躲避网站的封杀。
修改
getInfo(3) 里面的数字就可以抓取前面某页数据
__author__ = 'rocchen'# working v1.0from bs4 import BeautifulSoupimport urllib2, datetime, time, codecs, cookielib, random, threadingimport os,sysdef getInfo(max_index_user=5): stock_news_site = "http://ggjd.cnstock.com/gglist/search/ggkx/" my_userAgent = [ 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50', 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50', 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0', 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)', 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1', 'Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1', 'Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; en) Presto/2.8.131 Version/11.11', 'Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11', 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Maxthon 2.0)', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11', 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; 360SE)', 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SE 2.X MetaSr 1.0; SE 2.X MetaSr 1.0; .NET CLR 2.0.50727; SE 2.X MetaSr 1.0)'] index = 0 max_index = max_index_user num = 1 temp_time = time.strftime("[%Y-%m-%d]-[%H-%M]", time.localtime()) store_filename = "StockNews-%s.log" % temp_time fOpen = codecs.open(store_filename, 'w', 'utf-8') while index < max_index: user_agent = random.choice(my_userAgent) # print user_agent company_news_site = stock_news_site + str(index) # content = urllib2.urlopen(company_news_site) headers = {'User-Agent': user_agent, 'Host': "ggjd.cnstock.com", 'DNT': '1', 'Accept': 'text/html, application/xhtml+xml, */*', } req = urllib2.Request(url=company_news_site, headers=headers) resp = None raw_content = "" try: resp = urllib2.urlopen(req, timeout=30) except urllib2.HTTPError as e: e.fp.read() except urllib2.URLError as e: if hasattr(e, 'code'): print "error code %d" % e.code elif hasattr(e, 'reason'): print "error reason %s " % e.reason finally: if resp: raw_content = resp.read() time.sleep(2) resp.close() soup = BeautifulSoup(raw_content, "html.parser") all_content = soup.find_all("span", "time") for i in all_content: news_time = i.string node = i.next_sibling str_temp = "No.%s \n%s\t%s\n---> %s \n\n" % (str(num), news_time, node['title'], node['href']) #print "inside %d" %num #print str_temp fOpen.write(str_temp) num = num + 1 #print "index %d" %index index = index + 1 fOpen.close()def execute_task(n=60): period = int(n) while True: print datetime.datetime.now() getInfo(3) time.sleep(60 * period) if __name__ == "__main__": sub_folder = os.path.join(os.getcwd(), "stock") if not os.path.exists(sub_folder): os.mkdir(sub_folder) os.chdir(sub_folder) start_time = time.time() # user can change the max index number getInfo(10), by default is getInfo(5) if len(sys.argv) <2: n = raw_input("Input Period : ? mins to download every cycle") else: n=int(sys.argv[1]) execute_task(n) end_time = time.time() print "Total time: %s s." % str(round((end_time - start_time), 4))
github:https://github.com/Rockyzsu/cnstock
求star
0 0
- python 获取 中国证券网 的公告
- python抓取东方财富网股票的公告的里面的链接
- 获取服务端公告信息
- 中国证券金融股份有限公司的成立加速融资融券的发展
- 简单的小区公告,系统公告
- 以前的公告
- 自己的公告警句
- 崇山峻岭的公告
- 最后的公告
- linuxdrivers的博客公告
- 关于前段时间的公告
- 简单的公告
- 小小菜鸟的公告
- gh公告华国锋的
- 菜鸟的博客公告
- 一个不起眼的公告
- 【公告】不忍心的公布一件事情!(Eset 升级帐号获取器停止更新)
- 公告
- 企业支付宝账号开发接口教程SpringMVC+JSP)
- lseek详解
- 图标神器1.1更新
- Ubuntu系统vi编辑器上下左右键变ABCD的解决方法
- 编程之美 - 只考加法的算术题
- python 获取 中国证券网 的公告
- Mock方法介绍
- html网页中显示浏览器标题栏小图标
- HDU 4987(概率dp)
- Java单元测试(Junit+Mock+代码覆盖率)
- centos7重启apache、nginx、mysql、php-fpm命令
- ScrollView 往上滑动,里面的一个View停在某个位置的思路
- Spring Cache抽象详解
- 郁闷的C小加(三)