python爬虫二:网易博客的图片

举报
用户已注销 发表于 2021/11/19 04:32:42 2021/11/19
【摘要】 下面讲解我的爬虫程序: 在D:\wa中新建一个记事本文件1.txt,把所有的网易博客的链接(注意,是一篇博客的链接,不是目录页面的链接)都放进去,每个占一行,然后运行程序把每篇博客的图片全部下载下来,每篇博客都在D:\wa目录下新建一个目录,目录名为该篇博客的网页title。 代码: #coding=utf-8import r...

下面讲解我的爬虫程序:

在D:\wa中新建一个记事本文件1.txt,把所有的网易博客的链接(注意,是一篇博客的链接,不是目录页面的链接)都放进去,每个占一行,然后运行程序把每篇博客的图片全部下载下来,每篇博客都在D:\wa目录下新建一个目录,目录名为该篇博客的网页title。

代码:


  
  1. #coding=utf-8
  2. import re
  3. import urllib.request
  4. import os
  5. def get(url): #下载一个页面所有需要的图片
  6. if(len(url)<9): #忽略txt中的空行
  7. return
  8. all_title=[]
  9. try:
  10. html = urllib.request.urlopen(url).read().decode('gbk')
  11. except:
  12. print('error')
  13. print(url)
  14. return
  15. title = re.search("<title>.*</title>", html).group()
  16. title = title[7:-25] #########根据博客标题数出来的
  17. while(title in all_title): #处理相同标题的网页
  18. title = title+'a'
  19. all_title.append(title)
  20. #pic_url = re.findall('http://img[0-9]*.ph.126.net/[0-9a-zA-Z-_=]*==/[0-9]*\.jpg',str(html))
  21. pic_url = re.findall('http://.{1,100}jpg',str(html))
  22. pic_url = list(set(pic_url))#去重
  23. path = thepath + '\\' + title
  24. try:
  25. os.mkdir(path)
  26. except:
  27. return
  28. i = 1
  29. for each in pic_url:
  30. try:
  31. pic= urllib.request.urlopen(each,timeout=10).read()
  32. except:
  33. continue
  34. file = path + '\\' + title + str(i) + '.jpg'
  35. fp = open(file,'w')
  36. fp.write(pic)
  37. fp.close()
  38. i=i+1
  39. if not os.listdir(path):
  40. os.removedirs(path)
  41. print('error')
  42. print(url)
  43. thepath = 'D:\\wa'
  44. fp = open(thepath + '\\' + '1.txt','r').readlines()
  45. for line in fp:
  46. if line == '\n':
  47. print('none')
  48. break
  49. 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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。