好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

多线程爬虫批量下载pcgame图片url保存为xml的实现代码

代码如下:


#coding=gbk
from xml.dom import minidom,Node
import urllib2,re,os
def readsrc(src):
try:
url = urllib2.urlopen(src)
content = url.read()#.decode('utf-8')
return content
except:
print 'error'
return None
def pictype(content):
'''
通过抓取网站导航栏,获得网站的图片类型
返回列表,每个列表元素为一个字典,addr代表图片类型对于的链接,name代表图片类型的名称
错误会返回None
'''
p = re测试数据pile(r' (.*) ',re.S)
r=p.search(content)
if r:
content=r.group()
else:
print None
p = re测试数据pile(r' \s*.*?)">(?P .*?)\s*\s* ')

l = [i.groupdict() for i in p.finditer(content)]
l=l[1:]
if len(l):return l
else:return None
def pageinfo(src):
'''
获取一个页面的详细信息
返回对于的字典列表
name:图片的名字
cutaddr:缩小的浏览图
picaddr:实际图片的地址
'''
d=os.path.split(src)[0]
try:
url = urllib2.urlopen(src)
content = url.read()#.decode('utf-8')
except:
print 'error'
return None
#find all the pictures info in a page
p = re测试数据pile(r' (.*?) ',re.S)
r = p.findall(content)
if not r: return None
r = r[1]
p = re测试数据pile(r' .*?)".*?> .*?)" *src="https://img.(?P .*?)" */>.*? ')
l = [ i.groupdict() for i in p.finditer(r)]
for i in l:
i['picaddr']=d+'/'+i['picaddr']
if len(l): return l
else: return None

def nextpageaddr(src):
'''
从页面的html源码中获取下一个页面地址的名称,最后一页返回None
'''
content=readsrc(src)
p = re测试数据pile(r'.*?')
r = p.search(content)
if r:
return os.path.dirname(src)+"/"+r.group(1)
else:
return None
def picinfoaddr(src):
'''
参数相册图集的html代码
返回全部图片的相对地址
'''
content=readsrc(src)
p = re测试数据pile(r'

.*?.*?)".*?>.*?

查看更多关于多线程爬虫批量下载pcgame图片url保存为xml的实现代码的详细内容...

  阅读:38次