python爬虫二:网易博客的图片
【摘要】
下面讲解我的爬虫程序:
在D:\wa中新建一个记事本文件1.txt,把所有的网易博客的链接(注意,是一篇博客的链接,不是目录页面的链接)都放进去,每个占一行,然后运行程序把每篇博客的图片全部下载下来,每篇博客都在D:\wa目录下新建一个目录,目录名为该篇博客的网页title。
代码:
#coding=utf-8import r...
下面讲解我的爬虫程序:
在D:\wa中新建一个记事本文件1.txt,把所有的网易博客的链接(注意,是一篇博客的链接,不是目录页面的链接)都放进去,每个占一行,然后运行程序把每篇博客的图片全部下载下来,每篇博客都在D:\wa目录下新建一个目录,目录名为该篇博客的网页title。
代码:
-
#coding=utf-8
-
import re
-
import urllib.request
-
import os
-
-
def get(url): #下载一个页面所有需要的图片
-
if(len(url)<9): #忽略txt中的空行
-
return
-
all_title=[]
-
try:
-
html = urllib.request.urlopen(url).read().decode('gbk')
-
except:
-
print('error')
-
print(url)
-
return
-
title = re.search("<title>.*</title>", html).group()
-
title = title[7:-25] #########根据博客标题数出来的
-
while(title in all_title): #处理相同标题的网页
-
title = title+'a'
-
all_title.append(title)
-
#pic_url = re.findall('http://img[0-9]*.ph.126.net/[0-9a-zA-Z-_=]*==/[0-9]*\.jpg',str(html))
-
pic_url = re.findall('http://.{1,100}jpg',str(html))
-
pic_url = list(set(pic_url))#去重
-
path = thepath + '\\' + title
-
try:
-
os.mkdir(path)
-
except:
-
return
-
i = 1
-
for each in pic_url:
-
try:
-
pic= urllib.request.urlopen(each,timeout=10).read()
-
except:
-
continue
-
file = path + '\\' + title + str(i) + '.jpg'
-
-
fp = open(file,'w')
-
fp.write(pic)
-
fp.close()
-
i=i+1
-
if not os.listdir(path):
-
os.removedirs(path)
-
print('error')
-
print(url)
-
-
thepath = 'D:\\wa'
-
fp = open(thepath + '\\' + '1.txt','r').readlines()
-
for line in fp:
-
if line == '\n':
-
print('none')
-
break
-
get(line.strip('\n'))
get函数就是从1个url中下载所有图片
调用get函数时只需要读取1.txt即可
文章来源: blog.csdn.net,作者:csuzhucong,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/nameofcsdn/article/details/77351503
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)