爬取目标:百度通过关键词搜索图片,并下载结果
url:http://image.baidu.com/search/flip
贴上代码
import requests
import re
import os
class climb(object):
def __init__(self):
self.url=""
self.word=input("请输入你要搜索下载的图片内容:")
self.downNum=int(input("要下载多少张图片:"))
if not os.path.exists(r"E:\\untitled\\图片\\"+self.word):
os.mkdir(r"E:\\untitled\\图片\\"+self.word)
def get_url(self):
#index替换成flip
url="http://image.baidu.com/search/flip?
tn=baiduimage&ps=1&ct=201326592&lm=-1&cl=2&nc=1&word="+self.word
r=requests.get(url)
ret=r.content.decode() #bytes->str
result=re.findall('"objURL":"(.*?)",',ret)
print(result)
self.down(result)
def down(self,url):
a=1
long=len(url)
print(len(url))
if long <self.downNum:
self.downNum=long
for i in url:
try:
respond=requests.get(i)
except Exception as e:
print(e)
continue
name=i[-4:]
end=re.search('\.',name)
if end == None:
name=".jpg"
path=r"E:\\untitled\\图片\\"+self.word+"\\"
#路径大家可以自己来定义
filepath=path+str(a)+name
print(filepath)
with open(filepath,'wb') as f:
f.write(respond.content)
if a >=self.downNum :
break
else:
a+=1
if __name__ == '__main__':
do=climb()
do.get_url()
网页上太长了会换行,博友们自己处理下就可以啦,有问题欢迎评论留言