楼主: 马甲1号
5560 5

[网帖精选] 抓巨潮网公告python代码(用TK做了一个简易的GUI), 供娱乐 [推广有奖]

  • 3关注
  • 3粉丝

副教授

23%

还不是VIP/贵宾

-

威望
0
论坛币
1948 个
通用积分
8.7693
学术水平
159 点
热心指数
165 点
信用等级
144 点
经验
6272 点
帖子
777
精华
0
在线时间
665 小时
注册时间
2010-10-24
最后登录
2024-4-21

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
  1. # -*- coding: utf-8 -*-


  2. import urllib, urllib2,bs4, re, string, Tkinter
  3. BASEURL='http://www.cninfo.com.cn'
  4. BASEURL_SEARCH='http://www.cninfo.com.cn/search/search.jsp'



  5. def gui_init():
  6.     def do_work():
  7.         print startdate_str.get()
  8.         print enddate_str.get()
  9.         print code_str.get()
  10.         
  11.         codes=code_str.get().split(',')
  12.         for code in codes:
  13.             np=getnotice(startdate_str.get(), enddate_str.get(),code )
  14.             print np['title']
  15.             for t in np['title']:
  16.                 text1.insert(Tkinter.INSERT, t+'\n')
  17.         frame2.update()
  18.     def get_list():
  19.         try:
  20.             f=open('d:/work/list.txt', 'r')
  21.             a=f.readline()
  22.             print a
  23.             f.close()
  24.         except:
  25.             a=''            
  26.         return a
  27.         
  28.     top=Tkinter.Tk()
  29.     frame1=Tkinter.Frame(top,bd=1, relief= Tkinter.GROOVE)
  30.     frame2=Tkinter.Frame(top,bd=1, relief= Tkinter.GROOVE)
  31.     label1=Tkinter.Label(frame1, text='startdate')
  32.     startdate_str=Tkinter.StringVar(frame1,'2013-12-31')
  33.     entry1=Tkinter.Entry(frame1,textvariable=startdate_str)
  34.     label2=Tkinter.Label(frame1, text='enddate')
  35.     enddate_str=Tkinter.StringVar(frame1,'2013-12-31')
  36.     entry2=Tkinter.Entry(frame1,textvariable=enddate_str)
  37.     label3=Tkinter.Label(frame1, text='Code')
  38.     code_str=Tkinter.StringVar(frame1,get_list())
  39.     entry3=Tkinter.Entry(frame1, textvariable=code_str)
  40.     label4=Tkinter.Label(frame1, text='Output')
  41.     text1 =Tkinter.Text(frame2)
  42.     buttom1=Tkinter.Button(frame1,text='Fetch Notice From www.cninfo.com.cn', command = do_work )

  43.     label1.pack(fill=Tkinter.BOTH)
  44.     entry1.pack(fill=Tkinter.BOTH)
  45.     label2.pack(fill=Tkinter.BOTH)
  46.     entry2.pack(fill=Tkinter.BOTH)
  47.     label3.pack(fill=Tkinter.BOTH)
  48.     entry3.pack(fill=Tkinter.BOTH)
  49.     label4.pack(fill=Tkinter.BOTH)
  50.     buttom1.pack(fill=Tkinter.BOTH)
  51.     text1.pack(fill=Tkinter.BOTH)
  52.     frame1.pack(side=Tkinter.LEFT,fill=Tkinter.BOTH)
  53.     frame2.pack(side=Tkinter.RIGHT,fill=Tkinter.BOTH)   
  54.     Tkinter.mainloop()



  55. def getnotice(startTime='2014-06-30', endTime='2014-06-30', stockCode=''):
  56.     postdata = {'endTime': '2014-06-30',
  57.             'keyword': '',
  58.             'marketType': '',
  59.             'noticeType': '',
  60.             'orderby': 'date11',
  61.             'pageNo': 1,
  62.             'startTime': '2014-06-30',
  63.             'stockCode':''
  64.         }
  65.     postdata['endTime']=endTime
  66.     postdata['startTime']=startTime
  67.     postdata['stockCode']=stockCode
  68.     curpg=1
  69.     pgnum=999
  70.     notice_parsed={'title':[], 'link':[]}
  71.     while curpg<=pgnum:
  72.         postdata['pageNo']=curpg
  73.         req=urllib2.Request(BASEURL_SEARCH, urllib.urlencode(postdata))
  74.         resp=urllib2.urlopen(req)
  75.         raw_html=resp.readlines()
  76.         bs_obj=bs4.BeautifulSoup('\n'.join(raw_html).decode('gbk'))
  77.         try:
  78.             pgnum=max(string.atoi(t.contents[0]) for t in bs_obj.find_all('a', style="cursor:pointer;"))
  79.         except:
  80.             pgnum=1
  81.             
  82.         _np=bs_obj.find_all('a', target='new')
  83.         for _tmp in _np:
  84.             notice_parsed['title'].append(_tmp.text)
  85.             notice_parsed['link'].append(_tmp.attrs['href'])   
  86.             print _tmp.text
  87.         curpg +=1
  88.     return notice_parsed

  89.    
  90. if __name__ =='__main__':
  91.     gui_init()
复制代码




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:python GUI Variable Command keyword python import 公告 巨潮

已有 1 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
狂热的爱好者 + 36 + 12 + 1 + 1 + 1 热心帮助其他会员

总评分: 经验 + 36  论坛币 + 12  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

归欤!归欤!吾党之小子狂简,斐然成章,不知所以裁之。
沙发
minixi 发表于 2014-7-1 11:06:28 |只看作者 |坛友微信交流群
很惊奇,很好玩。

使用道具

藤椅
syslon 发表于 2014-7-1 12:46:32 |只看作者 |坛友微信交流群
谢谢楼主,楼主使用什么版本的python?

使用道具

板凳
马甲1号 发表于 2014-7-1 13:30:51 |只看作者 |坛友微信交流群
syslon 发表于 2014-7-1 12:46
谢谢楼主,楼主使用什么版本的python?
2.7.X.
其实可以从Tkinter第一个字母大写看出.

使用道具

报纸
狂热的爱好者 学生认证  发表于 2014-7-2 16:52:10 |只看作者 |坛友微信交流群
鼓励多发帖子~~~

使用道具

地板
olympic 发表于 2021-4-14 11:23:59 |只看作者 |坛友微信交流群

浪啊浪,新浪
潮呀潮,巨潮~

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-25 08:02