python爬虫一:必应图片(从网页源代码中找出图片链接然后下载)
【摘要】
这里讲解最简单的爬虫:从网页源代码中找出图片链接然后下载
代码:
#coding=utf-8#必应图片爬虫import reimport osimport urllib.requesturl = 'http://cn.bing.com/images/search?q=usb+pen&FORM=HDRSC2'coding ...
这里讲解最简单的爬虫:从网页源代码中找出图片链接然后下载
代码:
-
#coding=utf-8
-
#必应图片爬虫
-
import re
-
import os
-
import urllib.request
-
url = 'http://cn.bing.com/images/search?q=usb+pen&FORM=HDRSC2'
-
coding = 'utf-8'
-
thepath = 'D:\\'
-
-
def get():
-
try:
-
html = urllib.request.urlopen(url).read().decode(coding)
-
except:
-
print('error')
-
print(url)
-
return
-
title = re.search("<title>.*</title>", html).group()
-
title = title[7:-20]
-
pic_url = re.findall('http://.{1,100}.jpg|http://.{1,100}.png|http://.{1,100}.jpeg',str(html),re.IGNORECASE)
-
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,'wb')
-
fp.write(pic)
-
fp.close()
-
i=i+1
-
if not os.listdir(path):
-
os.removedirs(path)
-
print('error')
-
print(url)
-
-
get()
解释:
(1)urlopen是打开url对应的网页,获取源代码
(2)title是网页标题,利用正则表达式从源代码中获取标题
(3)pic_url是图片url的列表,方法比较简单,直接取出以http://开头以jpg结尾的字符串,中间的长度在1-100之间,因为不同图片的url在网页源代码中是隔开的,所以这个简单的正则表达式匹配以jpg结尾的url的准确率很高,如果是jpeg等等,只要用re1|re2就行,但是对于一些奇怪的url,不以图片后缀作为图片url的后缀,那就找不到它
(4)path是要创建的文件夹路径,文件夹名字就是title
(5)再用urlopen就可以直接打开图片url下载图片,所有图片都用title1,title2...命名
(6)最后一步,如果创建了文件夹但是没有下载图片,就把文件夹删掉
文章来源: blog.csdn.net,作者:csuzhucong,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/nameofcsdn/article/details/76010849
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)