t老闆讓整理國外的一些專利,包括專利名稱、專利號、申請日期、摘要等資訊,還需要進行簡單分類統計,順便記錄一下操作流程留作後用。
寫個python 爬蟲來搞定吧(翻頁就不先處理了,怎麼高效怎麼來了)
# coding=utf-8
import urllib2
from bs4 import beautifulsoup
# 2023年12月5日專利爬取總結
if __name__ == '__main__':
# 第一類
# 第二類第1頁
# 第二類第2頁
# 第二類第3頁
webdata = urllib2.urlopen(url).read()
soup = beautifulsoup(webdata)
# 標籤屬性匹配
trs = soup.find("table", ).findall('tr')
for tr in trs:
label = tr.contents[1].find('label')
if label is not none:
# strip()去前後空格
sequencenum = label.text.split("\n")[1].strip()
patentnum = tr.contents[3].text.strip()
patentname = tr.contents[5].find('a').text.strip()
# 構造目標url
tzurl = tr.contents[5].find('a')['href']
targeturl = "" + tzurl
# print targeturl
targetweb = urllib2.urlopen(targeturl).read()
targetsoup = beautifulsoup(targetweb)
# 標籤屬性匹配
dispdocs = targetsoup.findall("div", )
abstract = dispdocs[3].find("div", ).text.strip()
filldate = dispdocs[8].find("div", ).text.strip()
# 輸出
print "序號:", sequencenum
print '專利名稱 :', patentname
print "專利號:", patentnum
print "摘要:", abstract
print "申請日期:", filldate
# 寫入檔案
filehandle = open ('d:/lydresult.csv', 'a')
filehandle.write('"' + sequencenum + '"' + ',' + '"' + patentname + '"' + ',' + '"' + patentnum + '"' + ',' + '"' + filldate + '"' + ',' + '"' + abstract + '"' + '\n')
# if ',' in patentname:
# print 'aware the ', patentnum
# filehandle.write(patentname + ',' + patentnum + '\n')
filehandle.close()
用程式跑完發現46、67格式有誤:
原來每一頁格式並不一致,不過還好只有兩個有問題,手動獲取一下算了。
注意此操作中對逗號的處理:csv檔案中逗號處理,加雙引號即可。如」搜尋引擎,yidong,haohao」。
後續就是使用excel來處理,包括自動換行、行高、條件格式設定等。
1.自動換行設定,設定單元格格式為自動換行
2.設定行高
3.凍結視窗
4.篩選,刪除重複和無關記錄
5.條件格式,不同類別新增不同顏色
效果如下:
6.統計,使用函式subtotal()
如,=subtotal(3,d2:d19)
專利撰寫總結
1按照最終需要提交國家專利局的樣式書寫方式 1 首先需要明確撰寫的目的及意義 也就是首先需要調研清楚 想要寫什麼?相應的背景和技術是?2 寫技術方案 先繪圖,目的是為了縷清思路,每一步是如何操作的?然後就方案流程圖,詳細的寫出每一步驟或者模組具體是怎樣的 3 寫發明內容 首先需要明確解決的技術問題是...
adr adrl ldr mov總結整理
adr這是一條小範圍的位址讀取偽指令,它將基於pc的相對偏移的位址值讀到目標暫存器中。使用的格式 adr register,exper。在編譯源程式時,彙編器首先計算出當前pc值 當前指令位置 到exper的距離,然後會用一條add或者sub指令來替換這條偽指令,例如 add register,pc...
grep 整理總結
grep作用 主要用於查詢功能的字串處理工具 grep引數 c 列印符合要求的行數 n 在輸出符合要求的行同時連同行號一起輸出 v 去反,輸出不符合要求的行 a n 表示將每條符合要求的記錄之後n行一同輸出 b n 表示將每條符合要求的記錄之前n行一同輸出 c n 相當於a和b的組合,表示將每條符合...