一、爬取网站分析
爬取目标网址:http://www.521609.com/tuku/shz/
通过分析可得,该界面数据使用静态加载方式,所以获取到网页源代码,再对源代码进行数据解析即可(使用re正则表达式进行数据的匹配)。
二、程序源代码
import re # 正则表达式
import os # 创建文件夹
import requests
import urllib.request
# 请求头设置
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36"
}
# 创建空文件夹,用来存储照片
dirName = 'ImgLibs'
if not os.path.exists(dirName):
os.mkdir(dirName)
# 获取网页源代码
url = "http://www.521609.com/tuku/shz/"
page_text = requests.get(url = url,headers = headers).text
# 解析源码
ex = '<li>.*?<img src="(.*?)" alt=.*?</li>'
img_src_list = re.findall(ex,page_text,re.S) #re.S用来解决换行问题
# 持久化存储
for src in img_src_list:
src = 'http://www.521609.com' + src
imgPath = dirName + '/' + src.split('/')[-1]
response = requests.get(url = src,headers = headers)
img_data = response.content
with open(imgPath,'wb') as fp:
fp.write(img_data)
print(imgPath,'下载成功')
三、运行结果