简易百度图片爬虫

  • 目标站点:任意百度图片地址
  • 抓取分析:百度图片中的Html代码中objURL部分为实际图片地址,其他连接大家可以尝试访问,部分为压缩图片,部分做了防盗链处理,还有部分是404无法访问

实际代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from urllib.request import urlopen,urlretrieve
import re
url = "http://image.baidu.com/search/index?tn=baiduimagf-8&=%E7%BE%8E%E5%A5%B3&rsp=-1#z=0&pn=&ic=0&st=-1&face=0&s=0&lm=-1"
html = urlopen(url)
obj = html.read().decode() #得到网页HTML源码
urls = re.findall(r'"objURL":"(.*?)"',obj)#在这一步,获取网页中的objURL部分,也就是真正的图片地址
index = 0
for url in urls:
if index <=10:#控制下载10张
try:
print('Downloading...%d'%(index))
urlretrieve(url,'pic'+str(index)+'.png') #urlretrieve函数 下载图片
index += 1
except Exception: #当由于网络原因或图片服务器出现问题时,捕获异常即可,不使程序退出
print('Downloading Failed%d'%(index))
finally:
print('Downloading Complete')
else:
break
  • urlopen( url, )
    • 打开一个连接,并且返回一个HttpResponse对象
    • 参数第一个为URL连接地址
  • urlretrieve(url, path )
    • 根据资源地址,下载资源
    • 第一个参数为地址,第二个参数为本地保存路径

分析:这里只是一个非常简单的页面分析代码,通过正则分析页面中的对应URL部分,并且使用 ( ) 提取出真正需要的内容
关于爬虫,此处只介绍了不到0.01的部分,所以请各位观众在阅读时,了解这只是一个小玩具,单纯为了练习正则


转载请注明原文地址