Python 網路爬蟲——如何在登陸情況下下載文檔

最近工作當中需要大量的從一些網站下載文檔,頻繁的重複操作相當浪費時間,因此就用了Python 作為爬蟲工具來解決這個問題。之前看到很多有關如何爬取網頁信息的文章,但是對於需要登陸的網站如何爬取內容和文檔則很少有介紹。剛好我使用的網站都需要登陸,就把我用的方法在這裡總結一下。

有很多python的方法可以實現登陸網頁,但是如果需要保持登陸條件下使用網頁的某些功能,則一般需要利用cookie。在所有的實現方法中,Request包是一種相對比較簡潔的方法。

import requestn

找到目標網頁的登陸頁面,在瀏覽器中用右鍵點擊用戶名和密碼區域「查看網頁源代碼」。在高亮的代碼中找name對應的值,通常是"username", "password"。在這個例子中是"email-login" 和"password-login"。

接下來的在代碼中建立一個session,保持登陸狀態。

s = Session()ns = session.post("登陸頁面的url",n n email-login: 「用戶名」,n password: 「密碼」,n #Token: "某些網站需要token,可以在這裡添加"nn }n

之後可以繼續利用s 這個session來爬取網頁內容或者利用api 下載文檔。

例如要下載一個下載按鈕的內容,可以右鍵點擊選擇複製鏈接地址,獲取url。複製url到下面的代碼。

resp = s.get(url, stream = True)n#如果只下載html可以使用下面一行n#resp = s.get(url)nnwith open(文檔.txt,wb) as f:n shutil.copyfileobj(resp.raw,f)n

希望這個簡單的登陸爬蟲例子能有所幫助。


推薦閱讀:

矽谷之路53:如何設計Crawler(三)分散式爬蟲設計
temme:優雅地從 HTML 提取 JSON 數據

TAG:腕表 | 时尚 | 奥林匹克运动会? | 田径比赛 | 趣闻 | 计算机网络 | 通信 | WiFi | NBA | 体育 | 篮球 | 闪电战Blitzkrieg | 即时战略游戏RTS | Steam | 哲學 | 自然科學 | 中國人 | 科學哲學 | 盔甲 | 冷兵器 | 中国古代战争 | 发动机 | 留学 | 美国 | 备考 | 日本威士忌 | 苏格兰威士忌 | 单一麦芽威士忌 | 摄影技巧 | 摄影器材 | 人像摄影 | 前端開發 | 原生應用 | 網頁應用 | 前端工程師 | hybridapp | 坑害下一代工作委员会 | 微思考 | vthinkorg | 历史 | 航空母舰 | 太平洋战争 | 汽车设计 | 汽车选购 | 文化 | 江阴 | 美食 | 国内旅游 | Python入门 | 网页 | 网页爬虫 |