'''
爬取百度图片初级框架:
使用方法(参数):
url --- 要爬取的百度图片域名(字符串)
page --- 爬取的页数(int)
src --- 存放的图片路径(字符串的形式)
一共有两个函数:
getImg --- 可以批量下载百度多张页面的图片
getImgPage --- 指定下载百度某张页面,只能下载一个页面的图片
'''
import requests
import re
import pprint
index = 0
#获取百度图片函数
def getImg(url,page,src):
global index
#变换地址(重要)
url = url.replace('index','flip')
rs = re.findall(r'http(.*?)pn',url)
url = 'http'+rs[0]+'pn='
#获取头部信息
res = requests.get(url)
#显示访问状态
print('状态:'+str(res.status_code))
hear = res.headers
#循环获取图片
for k in range(0, page):
print('第{}页'.format(k+1))
Res = requests.get(url+'{}'.format(index), hear).text
r = re.findall(r'{.+?"objURL":"(.+?)".+?}', Res)
pprint.pprint(r)
index = index + 20
#保存图片
for j in range(len(r)):
get_res = requests.get(r[j])
with open('{}/{}m.jpg'.format(src,j),'+wb') as f:
f.write(get_res.content)
#获取百度第几页的图片函数
def getImgPage(url,page,src):
if(page == 1):
page = 0
else:
page = (page-1)*20
# 变换地址(重要)
url = url.replace('index', 'flip')
rs = re.findall(r'http(.*?)pn', url)
url = 'http' + rs[0] + 'pn='
# 获取头部信息
res = requests.get(url)
# 显示访问状态
print('状态:' + str(res.status_code))
hear = res.headers
# 获取图片
Res = requests.get(url + '{}'.format(page), hear).text
r = re.findall(r'{.+?"objURL":"(.+?)".+?}', Res)
pprint.pprint(r)
# 保存图片
for j in range(len(r)):
get_res = requests.get(r[j])
with open('{}/{}m.jpg'.format(src, j), '+wb') as f:
f.write(get_res.content)
Python爬百度图片框架(初级)
最新推荐文章于 2021-02-10 11:03:19 发布