Python3+Session爬重點產業專利資訊(僅作學習使用)
阿新 • • 發佈:2019-02-05
因為專案需要爬取**重點產業專利資訊網上的資訊,爬了四天,各種動態載入,以及登入失效,遇到了很多坑,在此記錄。
開發環境
- 開發工具:Pycharm
- Python版本:3
- 使用庫:session,beautifulsoup
分析網站
網站存在多個巢狀frame,這都不是問題,直接抓包分析實際包含資訊的頁面的URL。
第一層frame相對路徑:/index.jsp…
第二層frame相對路徑:
- /main_head.jsp…
- /index_main.jsp..
- 第三層frame(main.jsp)相對路徑:
- 左側導航/navtion.jsp…
- 第四層
- treeRecord.jsp…
- 第四層
- 右側查詢結果/jieguo.jsp…
- 左側導航/navtion.jsp…
- 第三層frame(main.jsp)相對路徑:
/main_foot.jsp…
資料都是採用js載入,分析js程式碼。
必須跳過的坑
- 保持登入一直有效
- 網站沒有登入需要,但是每次訪問JSESSIONID都會變化,分析js可以看到網頁使用了POST表單的隱藏登入,獲取JSESSIONID並儲存,才可以繼續下一個頁面的訪問。
- 儲存在頭部的cookie中。
- 獲取查詢結果頁面的連結
- 解決了上一個問題之後,這一個問題就變得簡單了。
- 顯示並爬取查詢結果的所有選項
- 獲取下一頁連結
資料提取
按照以下順序提取查詢結果中的所有資料:
1 申請號
2 公開(公告)號
3 主分類號
4 名稱
5 分類號
6 申請(專利權)人
7 發明(設計)人
8 公開(公告)日
9 申請日
10 本國主分類號
11 專利代理機構
12 代理人
13 地址
14 國省程式碼
專案完善
- 迴圈爬取所有產業的url再爬取某產業下的所有頁面。
- 設定等待時間,防反爬。
- 儲存資料庫
- 異常處理
- 可以設定ip代理,防封
結果
(過段時間再更新詳細內容)