Python爬虫用正则化爬取多张页面的图片

该博客介绍如何使用Python爬虫配合正则表达式从糗事百科抓取多页图片。首先创建保存图片的文件夹,然后设置用户代理以避免被网站识别为机器人。通过一个通用URL模板,遍历不同页码获取页面HTML,再利用正则表达式提取图片链接,下载并保存图片。
摘要由CSDN通过智能技术生成

Python爬虫用正则化爬取多张页面的图片

爬取多张页面的关键是设置一个通用的url模板:url = ‘https://www.qiushibaike.com/imgrank/page/%d/’,因为这些页面之间是有关联的,改变%d的值,即可获得多张页面。
获取每张页面的全部数据之后,可以使用正则化来解析html语言,获得我们需要的数据。

#爬取糗事百科多张页面的图片
import requests
import re
import os

#创建一个文件夹,保存所有的图片
if not os.path.exists('./qiutuLibs'):
     os.mkdir('./qiutuLibs')

#进行UA伪装
headers = {
     'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'
}

#设置一个通用的url模板
url = 'https://www.qiushibaike.com/imgrank/page/%d/'

for pageNum in range(1,3):
     #对应页码的url
     new_url = format(url%pageNum)
     #使用通用爬虫对url对应的一整张页面进行爬取
     page_text = requests.get(url=new_url,headers=headers).text

     #正则化,使用聚焦爬虫将页面中所有的糗图进行解析/提取
     ex = '<div class="thumb">.*?<img src="(.*?)" alt.*?</div>'
     img_src_list = re.findall(ex,page_text,re.S)
     # print(img_src_list)
     for src in img_src_list:
          #拼接出一个完整的图片url
          src = 'https:'+src
          #请求到了图片的二进制数据
          img = requests.get(url=src,headers=headers).content
          #生成图片名称
          imgName = src.split('/')[-1]
          imgPath='./qiutuLibs/'+imgName
          with open(imgPath,'wb') as fp:
               fp.write(img)
               print(imgName,'下载成功!')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值