所有的简单爬虫都是四步走——获取一个链接,打开这个链接,获取html代码,然后分析代码即可。
这是一个最简单的爬虫程序,只是爬一些百度图片。
示例代码:
from urllib.request import *
#用来处理网络访问
import re
url='https://image.baidu.com/search/indextn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&sf=1&fmq=&pv=&ic=0&nc=1&z=&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&fm=index&pos=history&word=%E9%A3%8E%E6%9A%B4'
html = urlopen(url)# 用来打开一个网页
obj = html.read().decode()
#获取html代码并解码
urls = re.findall(r'"objURL":"(.*?)"',obj) #贪婪 非贪婪
#urls为列表形式
index = 0
for url in urls:try:
print('downloading...%d'%index)
urlretrieve(url,'pic' + str(index) + '.jpg') #相对路径保存
index += 1
except Exception:
print('download error...%d'%index)
else:
print('download complete...')
这里需要注意的是贪婪与非贪婪,这里就是非贪婪,贪婪就是(.*?),即可以一次到位的东西就一次到位,简单来说就是结果将作为一个整体返回回来。另外,不同的图片有不同的格式,这里其实可以通过正则给不同格式的图片赋予不同的后缀名。