天天看點

Python下載下傳中國資料庫大會(DTCC2020)PPT全集

目錄

​​背景​​

​​效果展示​​

​​程式下載下傳​​

​​網盤下載下傳​​

背景

前幾天中國資料庫大會風風火火的在京舉行了,期間幹貨滿滿,收獲良多。在學大佬們的ppt時,發現隻能一篇一篇預覽,對于求知欲強烈的小編來說簡直太難受了,于是便寫了個程式,一鍵擷取所有ppt。

2020年12月21日~12月23日,由 IT168 旗下 ITPUB 企業社群平台主辦的第十一屆中國資料庫技術大會(DTCC2020),将在北京隆重召開。大會以“架構革新 高效可控”為主題,設定2大主會場,20+技術專場,将邀請超百位行業專家,重點圍繞資料架構、AI與大資料、傳統企業資料庫實踐和國産開源資料庫等内容展開分享和探讨,為廣大資料領域從業人士提供一場年度盛會和交流平台。

曆經十年的積累與沉澱,如今的DTCC已然成為國内資料庫領域的技術風向标,見證了整個行業的發展與演變。作為頂級的資料領域技術盛會,DTCC2020将繼續秉承一貫的幹貨分享和實踐指導原則,期待大家的熱情參與!

中國資料庫大會連結:​​http://dtcc.it168.com/​​

Python下載下傳中國資料庫大會(DTCC2020)PPT全集

軟體環境:python 3

效果展示

Python下載下傳中國資料庫大會(DTCC2020)PPT全集

話不多說,上代碼

# encoding: utf-8
from bs4 import BeautifulSoup
import requests
from urllib.request import urlopen
import re
import json


def visit(url):
    headers = {
        "User-Agent": "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.3)",
        "accept": "application/json, text/javascript, */*; q=0.01",
        "accept-encoding": "gzip, deflate, br",
        "accept-language": "zh-CN,zh;q=0.9",
        "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
        "cookie": "",  -- 填自己的
        "referer": "",
        "sec-fetch-dest": "document",
        "sec-fetch-mode": "navigate",
        "sec-fetch-site": "same-origin",
    }

    res = requests.get(url,headers=headers)
    bsObj = BeautifulSoup(res.text, "html.parser")
    return bsObj


def visit_homepage(url):
    bsObj = visit(url)
    content = bsObj.find('div', class_="content")
    content_list = content.select("p")

    category = []
    for i in range(4,len(content_list)):
        try:
            urls = content_list[i].a['href']
            name = content_list[i].get_text("|").split("|")[0].replace(' ','').replace('\xa0','')
            category.append([name,urls])
        except:
            pass
    print(category)
    return category


def download_pdf(conf,path):
    category_name = conf[0]
    category_url = conf[1]
    bsObj = visit(category_url)

    res = re.search(r'(.*)token:(.*?),',str(bsObj) ,re.M|re.I)
    token = res.group(2).replace('"','').replace(' ','')

    arts = re.findall(r'(.*)li data-docinfo=(.*?)}',str(bsObj) ,re.M|re.I)
    for art in arts:
        art_str = "{"+str(art).split('{')[1].replace("')","}")
        art_dic = json.loads(art_str)
        id = art_dic['id']
        name = art_dic['name']
        download_url = "https://api.z.itpub.net/download/file?st-usertoken=%s&id=%s"%(token,str(id))
        print(download_url)
        data = urlopen(download_url).read()
        with open(path+category_name+'__'+name, 'wb') as f:
            f.write(data)
            print("finish download  ")


if __name__ == '__main__':
    homepage = "https://z.itpub.net/article/detail/5260C494873379BAA63BAB7C5CBD7A95"
    path = "/Users/xxx/Downloads/DTCC/"

    # download
    category = visit_homepage(homepage)
    for i in category:
        download_pdf(i,path)      

程式下載下傳

1、cookie換成自己的

擷取cookie辦法:打開開發者模式(windows F12,mac opt+command+i) 打開開發者模式,通路:homepage,network裡面有cookie

2、修改path為自己的目錄

網盤下載下傳