本文主要是介绍爬虫剑谱第八页(爬取糗图百科图片),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
效果图:
首先准备第三库:
import requests
import re
import os
request:用于请求网页获取数据
re:正则表达式
os:操作文件
创建一个文件夹:
# 创建一个文件夹,用于保存爬取的图片
if not os.path.exists('./糗图百科'):os.mkdir('./糗图百科')
设置url以及和header头
url = "https://www.qiushibaike.com/imgrank/page/%d/"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36 SLBrowser/7.0.0.6241 SLBChan/15"
}
header头用于伪装爬虫,防止反爬机制检测
遍历每一个网页
for num in range(1, 5):new_url = format(url % num)repons = requests.get(url=new_url, headers=headers).text# text(字符串) json()(对象类型) content(二进制)# 使用聚焦爬虫对页面进行数据解析ex = '<div class="thumb">.*?<img src="(.*?)" alt.*?</div>'img_src_list = re.findall(ex, repons, re.S)
获取每一个网页的源码并进行数据解析
通过正则表达式获取到每一页的所有图片链接
对每一页每一张图片进行永久化保存
for soc in img_src_list:soc = 'https:' + soc# 请求图片的二进制数据img_soc = requests.get(url=soc, headers=headers).content# 生成图片名称img_name = soc.split('/')[-1]# 图片储存的路径imgPath = './糗图百科/' + img_namewith open(imgPath, 'wb') as fp:fp.write(img_soc)print(img_name + "下载成功!")# i += 1
完整代码:
import requests
import re
import osi = 1
# 创建一个文件夹,用于保存爬取的图片
if not os.path.exists('./糗图百科'):os.mkdir('./糗图百科')
url = "https://www.qiushibaike.com/imgrank/page/%d/"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36 SLBrowser/7.0.0.6241 SLBChan/15"
}for num in range(1, 5):new_url = format(url % num)repons = requests.get(url=new_url, headers=headers).text# text(字符串) json()(对象类型) content(二进制)# 使用聚焦爬虫对页面进行数据解析ex = '<div class="thumb">.*?<img src="(.*?)" alt.*?</div>'img_src_list = re.findall(ex, repons, re.S)for soc in img_src_list:soc = 'https:' + soc# 请求图片的二进制数据img_soc = requests.get(url=soc, headers=headers).content# 生成图片名称img_name = soc.split('/')[-1]# 图片储存的路径imgPath = './糗图百科/' + img_namewith open(imgPath, 'wb') as fp:fp.write(img_soc)print(img_name + "下载成功!")# i += 1
print("爬取完成")
这篇关于爬虫剑谱第八页(爬取糗图百科图片)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!