python实现爬取百度图片的方法示例
本文实例讲述了python实现爬取百度图片的方法。分享给大家供大家参考,具体如下:
importjson
importitertools
importurllib
importrequests
importos
importre
importsys
word=input("请输入关键字:")
path="./ok"
ifnotos.path.exists(path):
os.mkdir(path)
word=urllib.parse.quote(word)
url=r"http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&fp=result&queryWord={word}&cl=2&lm=-1&ie=utf-8&oe=utf-8&st=-1&ic=0&word={word}&face=0&istype=2nc=1&pn={pn}&rn=60"
urls=(url.format(word=word,pn=x)forxinitertools.count(start=0,step=60))
index=0
str_table={
'_z2C$q':':',
'_z&e3B':'.',
'AzdH3F':'/'
}
char_table={
'w':'a',
'k':'b',
'v':'c',
'1':'d',
'j':'e',
'u':'f',
'2':'g',
'i':'h',
't':'i',
'3':'j',
'h':'k',
's':'l',
'4':'m',
'g':'n',
'5':'o',
'r':'p',
'q':'q',
'6':'r',
'f':'s',
'p':'t',
'7':'u',
'e':'v',
'o':'w',
'8':'1',
'd':'2',
'n':'3',
'9':'4',
'c':'5',
'm':'6',
'0':'7',
'b':'8',
'l':'9',
'a':'0'
}
i=1
char_table={ord(key):ord(value)forkey,valueinchar_table.items()}
forurlinurls:
html=requests.get(url,timeout=10).text
a=re.compile(r'"objURL":"(.*?)"')
downURL=re.findall(a,html)
fortindownURL:
forkey,valueinstr_table.items():
t=t.replace(key,value)
t=t.translate(char_table)
try:
html_1=requests.get(t)
ifstr(html_1.status_code)[0]=="4":
print('失败1')
continue
exceptExceptionase:
print('失败2')
continue
withopen(path+"/"+str(i)+".jpg",'wb')asf:
f.write(html_1.content)
i=i+1
更多关于Python相关内容可查看本站专题:《PythonSocket编程技巧总结》、《Python正则表达式用法总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。