如何用python爬取图片数据_python爬虫怎么实现爬取网站图片?

Python爬虫实现抓取网站图片将所需要爬取照片的网站的源码,爬取下来,在txt文档中,观察各个照片的所处的代码位置,构建正则表达式:

网页地址: 故宫博物院

#爬取第一层网页代码 观察图片格式

import re

import urllib.request

import urllib.error

import requests

url="https://www.dpm.org.cn/lights/royal.html"

head=("User-Agent",

"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36")

opener=urllib.request.build_opener()

opener.addheaders=[head]

data=opener.open(url).read()

file=open("demo0_data.txt","wb")

file.write(data)

file.close()其中head后半部分的数据,根据每个人进行不同的更改,具体查询方式如下:

1.打开你电脑的默认浏览器:

到搜索框处,按快捷键ctrl+shift+i,查看网页源代码:

点击第四个选项”Network“点击下方任意栏目,查看右侧源码,在下方找到 User-Agent模块,其后部分便是你的浏览器head

运行上方代码后,可以在目录下的demo0.txt文档中查看网页源码

2.观察网页源码:

在网页源码中查找关键字:".jpg"一般为图片的地址”:

查找到每个网站中的关键字后都对应这相应的地址,则为该图片的地址:

取三个样例提出,根据该网址可访问到图片所在位置,即源码剖析完毕

正则表达式可以构建为:

url="https://img.dpm.org.cn/Uploads/Picture/.{26}jpg" 可以代表源代码中所有图片的地址,可以此匹配源码中的图片位置,将满足条件的网址存储到列表中!

3.根据图片网址,将图片爬取下来:

import re

import urllib.request

import urllib.error

import requests

url="https://www.dpm.org.cn/lights/royal.html"

head=("User-Agent",

"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36")

part="https://img.dpm.org.cn/Uploads/Picture/.{26}jpg"

opener=urllib.request.build_opener()

opener.addheaders=[head]

data=opener.open(url).read()

data=str(data)

imagelist=re.compile(part).findall(data)

对源码进行遍历,对满足条件的网址,将其存储到imagelist列表中去

之后对列表进行for循环,依次将网址提取出来访问,将图片进行存储,这部分的代码实现如下

简易的网页图片爬取就这样

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Python百度图片并保存的示例代码: ```python # 导入依赖库 import requests import re import os # 设置搜索关键字 keyword = "美食" # 设置图片保存路径 save_path = "./images/" # 构造百度图片搜索的URL url = "https://image.baidu.com/search/index?tn=baiduimage&word={}".format(keyword) # 发送HTTP请求并获响应 response = requests.get(url) # 使用正则表达式从响应内容中提图片URL列表 img_urls = re.findall('"objURL":"(.*?)",', response.text, re.S) # 遍历图片URL列表并下载保存图片 for i, img_url in enumerate(img_urls): try: # 发送HTTP请求并获响应 response = requests.get(img_url, timeout=10) # 设置图片保存路径 img_path = os.path.join(save_path, "{}.jpg".format(i)) # 保存图片 with open(img_path, "wb") as f: f.write(response.content) print("成功下载第{:>3d}张图片!".format(i+1)) except Exception as e: print("下载第{:>3d}张图片失败:{}".format(i+1, e)) ``` 解释一下上述代码的主要步骤: 1. 设置搜索关键字和图片保存路径 2. 构造百度图片搜索的URL 3. 发送HTTP请求并获响应 4. 使用正则表达式从响应内容中提图片URL列表 5. 遍历图片URL列表并下载保存图片 需要注意的是,这种方式只是简单的使用正则表达式从响应内容中提图片URL,而没有使用任何API,因此可能存在一些不稳定性和容易被反爬虫机制封禁的风险。建议在使用时注意合理使用代理、设置请求头等防反措施。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值