【Python】Python爬取复旦大学拟录取硕士名单公示——Adobe Flash Player的内容

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('下载完成!')

猜你喜欢

转载自blog.csdn.net/Li_Jiaqian/article/details/80297873