知网专利信息爬虫!强无敌
声明:本文只作学习研究 , 禁止用于非法用途 , 否则后果自负 , 如有侵权 , 请告知删除 , 谢谢!
项目场景:网址:这次给大家带来的是知网专利信息的获取 , 没有复杂的反爬措施 , 只要先用session获取查询时的cookie , 然后带着cookie访问列表页即可 。
项目代码:这里要讲解一下 , 一个页面最多50条数据 , 最多120页 , 所以我们要想获取全部的数据 , 就要对专利类型进行帅选(尽量细分) , 这样根据日期和专利类型搜索 , 大部分数据都能获取到 。
文章插图
文章插图
测试代码如下 , 可自行修改import requests,refrom lxml import etreedef get_cookie(): # 获取访问的cookieparams = (('action', ''),('NaviCode', 'A'), # 筛选的类别('ua', '1.21'),('PageName', 'ASP.brief_result_aspx'),('DbPrefix', 'SCPD'),('DbCatalog', '\u4E2D\u56FD\u4E13\u5229\u6570\u636E\u5E93'),('ConfigFile', 'SCPD.xml'),('db_opt', '\u4E2D\u56FD\u4E13\u5229\u6570\u636E\u5E93'),('db_value', '\u4E2D\u56FD\u4E13\u5229\u6570\u636E\u5E93'),('date_gkr_from', '2020-01-24'), # 筛选日期('date_gkr_to', '2020-01-24'), # 筛选日期('his', '0'),('__', 'Fri Oct 16 2020 14:37:38 GMT+0800 (\u4E2D\u56FD\u6807\u51C6\u65F6\u95F4)'),)session = requests.session()session.get('', headers=headers, params=params)return sessiondef get_list_info(): # 获取列表页params = (('curpage', '1'), # 当前页数('RecordsPerPage', '50'),('QueryID', '20'),('ID', ''),('turnpage', '1'),('tpagemode', 'L'),('dbPrefix', 'SCPD'),('Fields', ''),('DisplayMode', 'listmode'),('SortType', "(公开日, 'DATE')desc"),('PageName', 'ASP.brief_result_aspx'),)response = session.get('', headers=headers, params=params)selector = etree.HTML(response.text)urls_info = re.compile("(.*?)').findall(response.text)[0]gb_id = re.compile('【公开号】(.*?)【').findall(main_info)[0]gb_time = re.compile('【公开日】(.*?)【').findall(main_info)[0]sq_id = re.compile('【申请号】(.*?)【').findall(main_info)[0]sq_time = re.compile('【申请日】(.*?)【').findall(main_info)[0]sq_person = re.compile('【申请人】(.*?)【').findall(main_info)[0]addr = re.compile('【地址】(.*?)【').findall(main_info)[0]fmr = '#'.join(re.compile('【发明人】(.*?)【').findall(main_info)[0].split(';'))int_cl = re.compile('【专利分类号】(.*?)推荐下载').findall(main_info)[0]try:patent_agency = re.compile('【专利代理机构】(.*?)【').findall(main_info)[0]agent = '#'.join(re.compile('【代理人】(.*?)【').findall(main_info)[0].split(';'))except Exception:patent_agency = agent = ''abstract = re.compile('【摘要】(.*?)【').findall(main_info)[0].replace("'", '"')print(title, gb_id, gb_time, sq_id, sq_time, sq_person, addr, fmr, int_cl, patent_agency, agent, abstract)# breakif __name__ == '__main__':headers = {'Accept-Encoding': 'gzip, deflate, br','Accept-Language': 'zh-CN,zh;q=0.9','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36','Referer': '',}session = get_cookie()urls_info = get_list_info()get_detil()
文章插图
推荐阅读
- vivo一款新机现身跑分网!运存和系统信息通通曝光
- 未谈拢专利授权费 三星爱立信纷纷上诉ITC请求禁运对方产品
- 新专利曝光!苹果笔记本有望为iPhone无线充电,MacBook或改用塑料制成
- 三星再曝屏下摄像头新专利,Redmi Note 10 Pro获得认证
- 新专利显示苹果在未来可能让Apple Watch通过传感器测量血压
- 三星再曝屏下摄像头新专利 消灭打孔屏指日可待
- 三星又一屏下摄像头技术专利曝光:要和打孔说再见
- 虾米音乐一个月后关停 我的听歌记录和个人信息怎么办?
- 一根充电器同时充4台设备!苹果新专利大玩“套娃”
- 华为最新黑科技专利:能直接修复屏幕划痕,手机再也不用贴膜了
