1. 程式人生 > >Python3+Session爬重點產業專利資訊(僅作學習使用)

Python3+Session爬重點產業專利資訊(僅作學習使用)

因為專案需要爬取**重點產業專利資訊網上的資訊,爬了四天,各種動態載入,以及登入失效,遇到了很多坑,在此記錄。

開發環境

  • 開發工具:Pycharm
  • Python版本:3
  • 使用庫:session,beautifulsoup

分析網站

  1. 網站存在多個巢狀frame,這都不是問題,直接抓包分析實際包含資訊的頁面的URL。
    首頁

    • 第一層frame相對路徑:/index.jsp…

      • 第二層frame相對路徑:

        • /main_head.jsp…
        • /index_main.jsp..
          • 第三層frame(main.jsp)相對路徑:
            • 左側導航/navtion.jsp…
              • 第四層
                • treeRecord.jsp…
            • 右側查詢結果/jieguo.jsp…
        • /main_foot.jsp…

  2. 資料都是採用js載入,分析js程式碼。

必須跳過的坑

  1. 保持登入一直有效
    • 網站沒有登入需要,但是每次訪問JSESSIONID都會變化,分析js可以看到網頁使用了POST表單的隱藏登入,獲取JSESSIONID並儲存,才可以繼續下一個頁面的訪問。
    • 儲存在頭部的cookie中。
  2. 獲取查詢結果頁面的連結
    • 解決了上一個問題之後,這一個問題就變得簡單了。
  3. 顯示並爬取查詢結果的所有選項
  4. 獲取下一頁連結

資料提取

按照以下順序提取查詢結果中的所有資料:

1 申請號
2 公開(公告)號
3 主分類號
4 名稱
5 分類號
6 申請(專利權)人
7 發明(設計)人
8 公開(公告)日
9 申請日
10 本國主分類號
11 專利代理機構
12 代理人
13 地址
14 國省程式碼

專案完善

  1. 迴圈爬取所有產業的url再爬取某產業下的所有頁面。
  2. 設定等待時間,防反爬。
  3. 儲存資料庫
  4. 異常處理
  5. 可以設定ip代理,防封

結果

結果
(過段時間再更新詳細內容)