如何用Python写一个抓取新浪财经网指定企业年报的脚本

2024-05-07 15:40

1. 如何用Python写一个抓取新浪财经网指定企业年报的脚本

#!/usr/bin/env python import sys str = True while (str): dig = int(input()) if dig > 100: print 'please input mun between 0~100' elif dig >= 90: print 'A' elif dig >= 80: print 'B' elif dig >= 70: print 'C' elif dig >= 60: prin

如何用Python写一个抓取新浪财经网指定企业年报的脚本

2. 如何用Python写一个抓取新浪财经网指定企业年报的脚本

提供具体需求,可以有偿服务

3. 如何用Python写一个抓取新浪财经网指定企业年报的脚本

给你贴一下我前一段时间回答的类似问题,用的soup,还有一个用的正则就不贴了,手机不太方便,如下。 import beautifulsoup import urllib2 def main(): userMainUrl = "你要抓取的地址" req = urllib2.Request(userMainUrl) resp = urllib2.url.

如何用Python写一个抓取新浪财经网指定企业年报的脚本

4. 如何用Python写一个抓取新浪财经网指定企业年报的脚本

1.先得到需要的上市公司的股票代码和名字。
2.分析下载链接地址。以康达尔为例,年报地址,下载链接 的页面 ,链接末尾的8个数字前6个是股票代码,后两位01代表上交所上市公司(股票代码60开头)、02代表深交所上市公司。 让后就可以用一个循环来下载所有的数据!
3.把下载下来的xml文件转化成xls文件,代码如下:
1). xml可能的中文编码错误处理


def xml_Error_C(filename):
fp_xml=open(filename)
fp_x=''#中文乱码改正
for i in range(os.path.getsize(filename)):
i+=1
a=fp_xml.read(1)
if a=='&':
fp_xml.seek(-1,1)
if fp_xml.read(6)==' ':
i+=5
continue
else:
fp_xml.seek(-5,1)
fp_x+=a
fp_xml=open(filename,'w+')
fp_xml.write(fp_x)
fp_xml.flush()
fp_xml.close()


2). xml转xls

def Xmltoxls(xmlname,xlsname):
if os.path.getsize(xmlname)<1024:#小于1K,无该项数据
return False
wb=xlwt.Workbook(encoding='utf-8')
ws=wb.add_sheet('Table')
fp_xml=minidom.parse(xmlname)
root=fp_xml.documentElement
Row=root.getElementsByTagName('Row')
Data=root.getElementsByTagName('Data')
col_num=len(Data)/len(Row)
row_num= 0
for row in Row:
Data=row.getElementsByTagName('Data')
for i in range(col_num):
if len(Data[i].childNodes)==0:
ws.write(row_num,i,' ')
continue
ws.write(row_num,i,Data[i].childNodes[0].nodeValue.strip().encode('utf-8'))
row_num+=1
wb.save(xlsname)
return True




上整体代码:

from  xml.dom import  minidom
import xlwt
import os,shutil
import time,urllib2
def Xmltoxls(xmlname,xlsname):
if os.path.getsize(xmlname)<1024:
return False
wb=xlwt.Workbook(encoding='utf-8')
ws=wb.add_sheet('Table')
fp_xml=minidom.parse(xmlname)
root=fp_xml.documentElement
Row=root.getElementsByTagName('Row')
Data=root.getElementsByTagName('Data')
col_num=len(Data)/len(Row)
row_num= 0
for row in Row:
Data=row.getElementsByTagName('Data')
for i in range(col_num):
if len(Data[i].childNodes)==0:
ws.write(row_num,i,' ')
continue
ws.write(row_num,i,Data[i].childNodes[0].nodeValue.strip().encode('utf-8'))
row_num+=1
wb.save(xlsname)
return True
def xml_Error_C(filename):
fp_xml=open(filename)
fp_x=''#中文乱码改正
for i in range(os.path.getsize(filename)):
i+=1
a=fp_xml.read(1)
if a=='&':
fp_xml.seek(-1,1)
if fp_xml.read(6)==' ':
i+=5
continue
else:
fp_xml.seek(-5,1)
fp_x+=a
fp_xml=open(filename,'w+')
fp_xml.write(fp_x)
fp_xml.flush()
fp_xml.close()
def errorlog(error):
fp_error=open('errorlog.txt','a')
fp_error.write(error+'\n')
fp_error.close
fp_code=open('stockcode..txt')
fp_basic=open('basicdata_url.txt')
temp='z:\\temp.xml'
for line in fp_code:#设置代码起始位置
if line.split()[0]=='601958':
break
for line in fp_code:#遍历所有代码及名称
filepath='basicdata\\'+line.split()[0]+line.split()[1].replace('*','&')#建立文件夹
if not os.path.isdir(filepath):
os.makedirs(filepath)
for url in fp_basic:#抓取所有数据并保存
url_f=url.split()[0]+line.split()[0]+('01' if int(line.split()[0])>599999 else '02')+'&exp=1'
print 'I am handle '+line+' '+url.split()[1]+' '+'data for you'
filename=filepath+'\\'+line.split()[0]+' '+url.split()[1]+'.xls'
while True:#get xml data
try:
u=urllib2.urlopen(url_f)
time.sleep(0.3)
data=u.read()
f=open(temp,'w+')#保存文件
f.write(data)
f.flush()
f.close()
break
except :
print 'Network error,try latter!'
time.sleep(10)
while True:#xml data to xls data
if url.split()[1] in ['News','Notice','Subject']:
shutil.move(temp,filename) #   os.rename("oldname","newname")
break
try:
xml_Error_C(temp)
Xmltoxls(temp,filename)
except IOError:
errorlog('No '+filename)
except:
shutil.move(temp,filename)
errorlog('Not Done '+filename)
break
time.sleep(0.2)
time.sleep(7)
fp_basic.seek(0)
print 'All data have been getted.'
fp_code.close()
fp_basic.close()

5. 如何用Python写一个抓取天天基金网上每个基金经

用python写抓取天天基金的方法有很多呀~但是,不清楚你具体要抓取什么内容。写了一个最简单的例子:3行代码就可以抓一个包含所有开放基金数据的表格代码如下:
import pandasdata = pandas.read_html('http://fund.eastmoney.com/fund.html#os_0;isall_1;ft_|;pt_1')data[2].to_csv('天天基金.csv')运行结果:

写入本地文件的样子:

这应该是最简单神奇的代码了吧。前提是要安装好pandas哦,灵感来自yqxmf.top

如何用Python写一个抓取天天基金网上每个基金经

6. 写一个简单的shell脚本或Python脚本

import osfor i in range(1, 21):	dir_Name = r'f:/27/other/py/File/File'+str(i)+'/'	os.makedirs(dir_Name)		for j in range(1, 4):		fileName = r'f:/27/other/py/File/File'+str(i)+'/'+'text'+str(j)+'.txt'		f = open(fileName,'w')		f.close()	for j in range(1, 21):		fileName = r'f:/27/other/py/File/File'+str(i)+'/'+str(j)+'text.txt'		f = open(fileName,'w')		f.close()你把dir_Name = r'f:/27/other/py/File/File'+str(i)+'/'这里的f:/27/other/py改成你File文件夹所在的位置就可以使用了。
File里面的File1-File20:

20个File里每个包含23个txt文件,名字按照你说的创建的。

7. 用python脚本爬取和解析指定页面的数据

给你贴一下我前一段时间回答的类似问题,用的soup,还有一个用的正则就不贴了,手机不太方便,如下。
import beautifulsoup
import urllib2

def main():

userMainUrl = "你要抓取的地址"
req = urllib2.Request(userMainUrl)
resp = urllib2.urlopen(req)
respHtml = resp.read()
foundLabel = respHtml.findAll("label")

finalL =foundLabel.string

print "biaoti=",finalL
if __name__=="__main__":

main();

PS:如果不会改的话追问一下,回头我用电脑给你写一份

用python脚本爬取和解析指定页面的数据

8. 如何用python实现网游自动做任务的脚本?

这个挺难的。除非游戏被破解了,或者是游戏内置有脚本。否则做一个游戏外挂要研究好久,而且要一点点的试验。如果游戏升级了,可能参数又不能用了,又要重新做。

技术只是一方面,麻烦的是需要理解游戏的一些数据与规则。
最新文章
热门文章
推荐阅读