1.手动获取:
下载fiddler抓包工具:https://www.telerik.com/fiddler
安装好后打开fiddler,进入网页:http://www.gsao.fudan.edu.cn/2b/22/c1659a142114/page.htm
fiddler获取到一系列http请求,选择result为200的逐个点入查看request headers:
将src=后的内容添加到www.gsao.fudan.edu.cn后,组成新的url并进入查看,获得:http://www.gsao.fudan.edu.cn/_upload/article/files/71/90/4c4bfcd549cda2bf829ed28a6827/1078b5c8-254b-496d-af7a-1610c1327378.pdf,这就是公示名单的原始pdf
2.借助python:
右键->检查元素,存在两个class=wp_pdf_player,分别是上下两个浏览窗口:
可以看到pdfsrc后的内容就是我们使用fiddler抓取到的src,于是利用正则表达式抓取这个地址,添加到http://www.gsao.fudan.edu.cn后,就是pdf的下载地址,一共有两个pdfsrc,分别是1页的封面和168页的公示名单。
效果截图:
# -*- coding: utf-8 -*- import requests import re import wget class downloader(object): def __init__(self): self.server='http://www.gsao.fudan.edu.cn' self.target='http://www.gsao.fudan.edu.cn/2b/22/c1659a142114/page.htm' self.urls=[] def get_download_urls(self): req=requests.get(self.target) html=req.text pattern=re.compile(r'pdfsrc="(.*?)"') result=pattern.findall(str(html)) for i in range(len(result)): self.urls.append(result[i]) def get_pdf(self): for i in range(len(self.urls)): target=self.server+self.urls[i] wget.download(target,'D:/python tests/ZQfd_paiming/pdf/') #下载 if __name__=='__main__': dl=downloader() dl.get_download_urls() print('开始下载!') dl.get_pdf() print('下载完成!')