下载巨潮网络数据的python脚本
来源:互联网 发布:camshift跟踪算法 编辑:程序博客网 时间:2024/05/17 08:18
从巨潮网络下载财报数据,觉得手动比较麻烦,就做了一个简单的python脚本。具体主要代码如下:
driver = webdriver.PhantomJS(executable_path='浏览器引擎/自己使用phantomjs') if int(stockNumber) >= 600000: dst_url = 'http://www.cninfo.com.cn/cninfo-new/disclosure/sse' else: dst_url = 'http://www.cninfo.com.cn/cninfo-new/disclosure/szse' driver.get(dst_url) prefixpath = "文件夹路径" driver.find_element_by_class_name("input-stock").send_keys(stockNumber) driver.find_element_by_xpath("//ul[@id='stock_list']/li[1]/a").click() prefixpathname = prefixpath+stockNumber+"/" if os.path.exists(prefixpathname): pass else: os.mkdir(prefixpathname) #driver.find_element_by_xpath("//ul[@id='stock_list']/li[1]").send_keys(Keys.ENTER) #切换网页,以获取新弹出的网页窗口 for handle in driver.window_handles: driver.switch_to_window(handle) #print('current url:%s'%driver.current_url) time.sleep(1) urldata = driver.find_element_by_xpath("//ul[@id='category_list']") #print('%s'%urldata.text) chain = ActionChains(driver) moveelment = driver.find_element_by_xpath("//div[@class='search-condition c5 drop-down']/a/div") chain.move_to_element(moveelment).perform() driver.find_element_by_xpath("//div[@class='search-condition c5 drop-down']/a/div").click() urldata = driver.find_element_by_xpath("//div[@class='search-condition c5 drop-down']/a/div") #print('%s'%urldata.text) driver.find_element_by_xpath("//ul[@id='category_list']/li[1]/a").click() #选择需要的项,年报,半年报...等等 ... ... #如果需要下载全部数据,需要点击更多,直到数据全部显示 #while(rslt[0] != rslt[1]): # driver.find_element_by_link_text('更多').click() # #等待网页相应时间 # time.sleep(1) # urldata = driver.find_element_by_xpath("//div[@id='con-div-his-fulltext']/div[@class='stat-right']") # print('%s'%urldata.text) # patternStr = '\d+' # rslt = re.findall(patternStr,urldata.text) listNum = int(rslt[0]) #listNum if(listNum != 0): for indexValue in range(1,listNum+1): findXpathStr = "//ul[@id='ul_his_fulltext']/li[%d]/div[@class='t3']/dd/span/a"%indexValue #print('%s'%findXpathStr) urlTextGet = driver.find_element_by_xpath(findXpathStr) print('%s'%urlTextGet.text) driver.find_element_by_xpath(findXpathStr).click() time.sleep(1) for handle in driver.window_handles: driver.switch_to_window(handle) time.sleep(1) #print('%s'%driver.current_url) urldata1 = driver.find_element_by_class_name("year") try: urldata2 = driver.find_element_by_class_name("new_day") except: urldata2 = driver.find_element_by_class_name("day") timeStr = '%s%s'%(urldata1.text,urldata2.text) #print('%s%s'%(urldata1.text,urldata2.text)) nameUrl = driver.find_element_by_xpath('//div[@class="bd-top"]/h2') #print('%s'%nameUrl.text.replace(name,'').strip()) #srcUrl = driver.find_element_by_xpath('//div[@class="bd-ct"]/iframe.src') #print('%s'%srcUrl.text) #downloadfilename = './new/%s%s.pdf'%(nameUrl.text.replace(name,'').strip(),timeStr) nameUrlList = nameUrl.text.split('\n') if(len(nameUrlList)>1): downloadfilename = '%s%s%s.pdf'%(prefixpathname,nameUrlList[1].strip(),timeStr) else: downloadfilename = '%s%s%s.pdf'%(prefixpathname,nameUrlList[0].strip(),timeStr) pageRequest = request.urlopen(driver.current_url) pageRead = pageRequest.read().decode('utf-8') #pageRequest.readlines().decode('utf-8') findlinkSuccess = 0 for eachline in pageRead.split('\n'): webDownloadURL = re.findall('src="(.+)"',eachline) if(len(webDownloadURL)>0) and re.search('iframe',eachline) and re.search('pdf',eachline.lower()): wgetURL = webDownloadURL[0] #print('%s'%wgetURL) findlinkSuccess = 1 break #关闭当前URL窗口 if(os.path.exists(downloadfilename)): print('%s已存在'%downloadfilename) elif(findlinkSuccess == 1): wget.download(wgetURL,downloadfilename) else: print('无效链接!ignore') driver.close() #返回指向前一次最新的URL for handle in driver.window_handles: driver.switch_to_window(handle) time.sleep(1) driver.close() driver.quit()
阅读全文
0 0
- 下载巨潮网络数据的python脚本
- python脚本下载并解码MNIST数据遇到的问题
- windos自动下载setuptools的Python脚本
- python下载网络上的图片示例
- python 一个处理数据的脚本
- HttpURLConnection:网络下载数据的工具类
- 一个用于批量下载网络图片的Shell脚本
- 一个用于批量下载网络图片的Shell脚本
- 使用Python脚本编写网络爬出程序,来获取Web数据的方法实现(1)——流程图
- python下载网络图片
- python 网络下载文件
- WebClient.DownloadFileAsync实现下载网络数据-简单的下载软件
- 优化的下载Android源码的Python脚本
- python备份数据脚本
- python处理数据脚本
- java下载网络数据
- 网络数据下载优化:
- python3-网络数据下载
- 推荐书籍android开发
- 传输层概述以及传输层端口
- HTMl5与CSS3两种制作时钟的方法
- 列几个Android插件化开发框架
- windows下利用命令行编译运行程序
- 下载巨潮网络数据的python脚本
- 有数组参数的方法的反射调用
- leetcode 56. Merge Intervals
- 计算机一些简写的含义
- 《算法》阅读笔记-2.2归并排序
- 【代码重构 & JDT】判断一个类IType是否有子类
- python入门实战小例子(一朵花的绽放)(花が咲く)
- 流程python学习笔记:第五章(1)
- 第一章:绪论