关于用一个列表接受另一个列表的遍历问题
本人菜鸟级,在用python写一个下载图片的的小爬虫,当中遇到一个小麻烦,就是某论坛里有些图片源码里面没有http的,file="data/a/b/c/0000000001c5gb8evgpkyo3g8a.jpg",def getImg(html):
reg = r'file="(.*?\.jpg)"'
imgre = re.compile(reg)
imglist = re.findall(imgre,html)
我得到这样一个imglist的列表但是缺少域名http://www.abc.com/
用for循环加上去
headurl = 'http://www.abc.com/'
for url in imglist:
fullurl =
print fullurl
我是用os模块将headurl加到imglist列表里的,现在的问题是我得到的是每一个图片是一个列表,怎样写才能把fullurl这个编程一个大的列表,而不是每个图片生成一个列表?
或者高手们有什么其它更好的方法?谢谢大家!
回复 1# zwfnet
当得到imglist列表后,可以这样(假定所有的数据都是需要追加url的开头这部分的):headurl = 'http://www.abc.com/'
newList = 这时,newList应当就是你需要的新列表了。
记得:这个假定是所有的URL都需要加url头的。 回复 2# icymirror
是的,这方法可以实现,但是为啥我print出来的效果是,出现生成N次的列表哦,意思是我的imglist有多少个元素,就会出现多少次newlist。能否改进?
非常感谢你的回复,谢谢!
回复 3# zwfnet
主要是因为你在for循环里面把fulllist做成了一个list,然后马上打印它。
你可以试着先把[]去除,然后再执行下你的循环。 回复 4# icymirror
明白了,我去掉上面的for循环不去循环那个列表就对了,因为之前也是一个列表,所以把那个列表遍历了一遍,所以才会重复出现了这么多次数。
不过item for item in imglist 这个方法是在很棒,我就没想到,还是非常感谢你,受教了! 再加个条件
newList = newList = [''.join() for item in imglist]
页:
[1]