赞
踩
1:打开pycharm,新建一个项目。
2:导入此项目所需要的库:
import os # 操作系统
import re # 正则表达式
import requests # http客户端库
3:获取网站源代码:
def get_html(url, headers, params):
response = requests.get(url, headers=headers, params=params)
# 设置源代码的编码方式
response.encoding = "utf-8"
# 利用循环判断网页是否能打开
if response.status_code == 200:
return response.text
else:
print("网址源码获取错误")
4:提取图片原地址:
def parse_pic_url(html):
result = re.findall('thumbURL":"(.*?)"', html, re.S)
return result
5:获取图片二进制源码:
def get_pic_content(url):
response = requests.get(url)
return response.content
6:创建文件夹对图片进行保存:
def create_fold(fold_name):
# 异常处理
try:
os.mkdir(fold_name)
except:
print("文件夹已存在")
7:保存图片:
def create_fold(fold_name):
# 异常处理
try:
os.mkdir(fold_name)
except:
print("文件夹已存在")
8:定义main函数对get_html函数进行调用:
def main():
#输入文件夹名字
fold_name = input("请输入图片名:")
#输入你要抓取的数量
page_num = input("请输入你要抓取的页数:")
#调用函数,创建文件夹
create_fold(fold_name)
#定义图片名字
pic_name = 0
#构建循环.控制页面
for i in range(int(page_num)):
url =
headers = {}
params = {}
html = get_html(url, headers, params)
result = parse_pic_url(html)
# 使用for循环遍历列表
for item in result:
# 调用函数,获取二进制源码
pic_content = get_pic_content(item)
save_pic(fold_name, pic_content, pic_name)
pic_name += 1
print("正在保存第" + str(pic_name))
# 执行main函数
if __name__ == '__main__':
main()
下面是项目的源代码:
# 导入所需要的库
import os # 操作系统
import re # 正则表达式
import requests # http客户端库
# 获取网络源代码
def get_html(url, headers, params):
response = requests.get(url, headers=headers, params=params)
# 设置源代码的编码方式
response.encoding = "utf-8"
# 利用循环判断网页是否能打开
if response.status_code == 200:
return response.text
else:
print("网址源码获取错误")
# 解析提取图片的源地址
def parse_pic_url(html):
result = re.findall('thumbURL":"(.*?)"', html, re.S)
return result
# 获取图片二进制源码
def get_pic_content(url):
response = requests.get(url)
return response.content
# 定义一个文件夹保存
def create_fold(fold_name):
# 异常处理
try:
os.mkdir(fold_name)
except:
print("文件夹已存在")
# 保存图片
def save_pic(fold_name,content,pic_name):
with open(fold_name + "/" + str(pic_name)+".jpg","wb") as f:
f.write(content)
f.close()
#定义main函数调用get_html函数
def main():
#输入文件夹名字
fold_name = input("请输入图片名:")
#输入你要抓取的数量
page_num = input("请输入你要抓取的页数:")
#调用函数,创建文件夹
create_fold(fold_name)
#定义图片名字
pic_name = 0
#构建循环.控制页面
for i in range(int(page_num)):
url:
headers = {}
params = {}
html = get_html(url, headers, params)
# print(html)
result = parse_pic_url(html)
# 使用for循环遍历列表
for item in result:
# 调用函数,获取二进制源码
pic_content = get_pic_content(item)
save_pic(fold_name, pic_content, pic_name)
pic_name += 1
print("正在保存第" + str(pic_name))
# 执行main函数
if __name__ == '__main__':
main()
打开浏览器搜索你想要爬取的图片,这里以大熊猫为例
在空白处单击鼠标右键,出现选项,这里我们选择检查,会出现以下界面。
这里我们点击网络,选择Fetch/XHR,然后刷新一下页面
找到acjson开头的这个,点进去,选择标头找到请求URL,复制粘贴进代码中。
对该页面往下翻,并复制以下信息粘贴在header中(注:粘贴时优先打三对双引号注释后再粘贴,这样能够最高程度避免粘贴胡乱换行的情况)
然后将代码整理好,再复制负载内容,粘贴进代码里(注:这里要删除没有内容的名称)
将这一部分代码也整理好,就可以爬取图片了,
以下是运行结果
可以看到,我们的文件夹里已经有图片了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。