python处理url转码的爬虫脚本示例(只供参考)

来源:互联网 发布:java错误找不到符号 编辑:程序博客网 时间:2024/05/16 08:57

recAlbumSp.py

#coding=utf8#---------------------------------------#   作者:ewang#   日期:2017-10-28#   语言:Python 2.7#---------------------------------------import urllib2import reimport  urllibimport sysreload(sys)sys.setdefaultencoding("utf-8")class XMLY_Spider:#申明相关属性def  __init__(self,requestPara):self.requestPara=requestParavalueData={}#对输入的参数进行urlencode转换valueData['dbgParams']='recid=105&uid=0&album='+self.requestParaself.data=urllib.urlencode(valueData)#给DeviceRankUrl设置文件名self.xmlyUrl='http:///report/rec_tool.jsp?'+self.data#用来保存推荐专辑信息self.Rec_Album=[]print u'爬虫,爬爬...'#初始化加载页面并将其转码存储defrec_Album(self):#获取页面标题dbgParams=self.find_title(self.requestPara)print u'dbgParams:'+dbgParams#获取页面中文本信息self.save_infor(dbgParams)#查找专辑名称def find_title(self,requestPara):return requestPara#保存页面信息def save_infor(self,title):#加载页面文本信息到数组中self.get_infor()try:#创建并打开本地文件filename="C:\\Users\\Desktop\\Rec\\"+title+".csv"f=open(filename,'wb+')except WindowsError: pass#把获取的页面信息写入文件中f.writelines(self.Rec_Album)#关闭打开的文件f.close()#print u'爬虫报告:文件'+title+'.csv'+u'已经下载:'+os.getcwd()print u'按任意键退出...'#获取页面源码并将其存储到数组中def get_infor(self):    #获取页面中的源码page=urllib2.urlopen(self.xmlyUrl).read()#获取页面中声音ID、声音名、声音创建时间、声音播放次数的信息self.deal_XMLY(page)def deal_XMLY(self,page):try:#获取推荐专辑信信息(URL,与专辑ID)元组AlbumInfo=re.findall(r'\<a href=\'(.*?)\'\>(.*?)<\/a\>',page,re.S)for index,item in zip(range(1,len(AlbumInfo)+1),AlbumInfo):albumId=re.findall(r'(\d+)?',item[1],re.S)[0]albumName=u"%s"  %(item[1][len(albumId):])recAlbumUrl=item[0]self.Rec_Album.append(str(index)+",") self.Rec_Album.append(albumId+",")self.Rec_Album.append(albumName.decode("utf8")+",")self.Rec_Album.append(recAlbumUrl)self.Rec_Album.append("\n")except Exception,e:print e#------------程序入口处----------------print u"""#---------------------------------------#   作者:ewang#   日期:2017-11-07#   语言:Python 2.7#--------------------------------------------------"""#print u"输入专辑ID(7883976)或文件目录:"#searchData =raw_input()#XMLY_Spider(line).rec_Album()filename="C:\\Users\\Desktop\\Rec\\searchAlbumId.txt"f=open(filename,'rb+')redaData=f.readlines()for line in redaData:line=line.rstrip('\r\n')XMLY_Spider(line).rec_Album()print "All  Success..."
运行截图:



原创粉丝点击