Export patent information to CSV format
// ==UserScript==// @name Export Patent Info// @namespace http://your.site.com// @version 0.3// @description Export patent information to CSV format// @author Your Name// @match *://*.cponline.cnipa.###.cn/*// @license MIT// @grant none// ==/UserScript==(function() {'use strict';// 创建导出按钮const exportButton = document.createElement('button');exportButton.textContent = '导出专利信息';exportButton.style.position = 'fixed';exportButton.style.top = '120px';exportButton.style.right = '20px';exportButton.style.zIndex = '9999';exportButton.style.padding = '10px 20px';exportButton.style.fontSize = '16px';exportButton.style.backgroundColor = '#4CAF50';exportButton.style.color = 'white';exportButton.style.border = '1px solid #ddd';exportButton.style.borderRadius = '5px';exportButton.style.boxShadow = '2px 2px 5px rgba(0,0,0,0.2)';exportButton.style.cursor = 'pointer';exportButton.addEventListener('click', function() {// 创建一个数组来保存提取的信息let patentsData = [];// 遍历每个专利信息元素document.querySelectorAll('.table_info').forEach(function(patent) {// 提取元素内部的各项信息const spans = patent.querySelectorAll('span');let Application_OR_Patent_Number = 'CN' + patent.querySelector('.hover_active').textContent.trim();Application_OR_Patent_Number = Application_OR_Patent_Number.slice(0, -1) + '.' + Application_OR_Patent_Number.slice(-1);const title = `"${patent.querySelector('span span').textContent.trim()}"`;let Applicant = `"${spans[6].textContent.trim().replace("申请人:", "")}"`;let PatentType = `"${spans[8].textContent.trim().replace("专利类型:", "")}"`;let ApplicationDate = `"${spans[10].textContent.trim().replace("申请日:", "")}"`;let AuthorizationAnnouncementNumber = `"${spans[14].textContent.trim().replace("授权公告号:", "")}"`;let legalStatus = `"${spans[16].textContent.trim().replace("法律状态:", "")}"`;let CaseStatus = `"${spans[18].textContent.trim().replace("案件状态:", "")}"`;let AuthorizationAnnouncementDate = `"${spans[20].textContent.trim().replace("授权公告日:", "")}"`;// 将提取的信息添加到数组中patentsData.push({'申请号': Application_OR_Patent_Number,'发明名称': title,'申请(专利权)人': Applicant,'文#类型': PatentType,'申请日': ApplicationDate,'授权公告号': AuthorizationAnnouncementNumber,'法律状态': legalStatus,'案件状态': CaseStatus,'授权公告日': AuthorizationAnnouncementDate});});// 导出数据到 Excel 表格if (patentsData.length > 0) {exportToExcel(patentsData);} else {console.error('没有可导出的专利信息!');}});document.body.appendChild(exportButton);// 导出数据到 Excel 表格function exportToExcel(data) {const header = Object.keys(data[0]);const rows = data.map(obj => header.map(key => obj[key]));const csvContent = header.join(',') + '\n' + rows.map(row => row.join(',')).join('\n');const blob = new Blob([new Uint8Array([0xEF, 0xBB, 0xBF]), csvContent], { type: 'text/csv;charset=utf-8' });const url = URL.createObjectURL(blob);// 使用浏览器的下载功能下载 CSV 文件const a = document.createElement('a');a.href = url;a.download = 'patent_info.csv';a.click();}})();