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循环,依次将网址提取出来访问,将图片进行存储,这部分的代码实现如下
简易的网页图片爬取就这样