0引言
,、、,。
、,
,、、、。
,,
,“”“”[1],(Open Source Intelligence,OSINT)
。,
,
,,“、、”,
。,Scrapy
,
xpath语法 python1基于主题的数据采集技术在开源情报获取方面研究现状及相关技术介绍
1.1国内外研究现状
,
,[2]
;[3]WebMagic
;[4]
,;
[5]
,
;[6]
,
,。
,
,
,。,Shiqi Deng[7],
URL
,
;Sumita Gupta[8]
,,
;Aamir Khan Dilip Kumar Sharma[9]
,
,
,
,“”,
1.2相关技术介绍
1.2.1Scrapy
Scrapy Python
[10], Twisted,、、,
,。Scrapy1。
基于Scrapy的开源核情报采集系统构建
黄禹兰洋张玥胡家全黄粲
(中国核动力研究设计院,四川成都610000)
【摘要】随着大数据时代的到来,互联网集聚了海量的数据,但如何缓解“信息过载”,从互联中获取到专业领域的开源情报却成了问题。为了准确高效地采集开源核情报,文章提出了基于主题的开源核情报采集系统,确定了该系统的功能需求,设计了该系统的基本结构框架,并就该系统各模块进行了详细设计与实现。在对该系统进行部署测试后,所定制开发的采集程序能够顺利采集到的目标站点的开源情报,从而表明该系统的有效性。
【关键词】数据采集;开源情报;Scrapy
中图分类号:TP391.3文献标识码:A DOI:10.19694/jki.issn2095-2457.2022.17.01作者简介:黄禹,硕士,研究方向为知识管理与知识挖掘。
Scrapy :(1)Engine:。(2)Scheduler:Engine ,,URL 。(3)Downloader:Web ,Engine。Engine Spider,Spider 。(4)Spider:,,URL。(5)ItemPipeline:。:、、。
(6)Middlewares:,。
1.2.2Xpath Xpath XML [11]
。XML ,。Xpath XML ,,。
Xpath 1。
2基于Scrapy 的开源核情报采集系统需求分析
与概要设计
2.1系统功能需求分析
,(、、),,、SEO ,,图1
Scrapy
框架
nodeName
/
//,...@*
@*Node()
表1Xpath 路径表达式
,Python
Scrapy,
、、。
: (1)。
,
(2)。
(3)。
(4)。
。2.2系统基本结构
,C/ S,,
,Mysql
。、
、。
2。
图2系统基本结构
2,
URL
,;
,
; Mysql,
;
,Web,
,
,
3基于Scrapy的开源核情报采集系统详细设计与实现
Scrapy
Windows 10,Pycharm,Python
,Scrapy,
JavaScript HTML,Mysql 。Http/Https。
3.1页面请求模块
,
URL,
,
URL,,
URL URL。
URL URL,
URL,,
3,:
图3
页面请求流程
(1)1:URL
URL,URL
URL,URL。
,URL
URL。
(2)2:URL,
(3)3:URL。
(4)4:URL,
URL。
(5)5:URL
URL,,URL
URL,URL,URL
。,
2。
3.2情报解析模块
。,
,
,
,
,
URL,URL
,,
URL,
3.2.1
URL,
,Xpath
URL,
,
4、5。
1—/publications/search/year/
2021?page=02021 ,
2—/New-
Nuclear
3—www.power-eng/nuclear/reactors/,
www.power-eng/nuclear/waste-management-and-decommissioning/
(
、)
4defenseworld/search?keyword={0},
“nuclear”
5—www.nuclear/portal.php?mod=
list&catid=94, www.nuclear/portal.php?mod=
list&catid=97
表2采集站点列表
:
def parse(self,response):
#url
url_blocks =response.xpath ('//ul [@class="list -unstyled"]//li')
for block in url_blocks:
post_url =block.xpath('./a/@href').extract()[0]
post_id =post_url.split('/')[1]+'-'+post_url.split ('/')[2]
pub_date =block.xpath ('./a//div [@class="time"]/text()').extract()[0]
pub_date=self.datetime_standardization(pub_date)yield Request(url=self.BASE_URL +post_url,meta={'post_id':post_id,'pub_date':pub_date},callback=self.parse_detail)#scrapy next_url =response.xpath('//ul [@class ="pagination"]/li [last ()]/a/@href').
extract()[0]
if next_url:
yield Request
(url =self.BASE_URL +next_url,
callback=self.parse)3.2.2,,3
。表3世界防务开源情报ITEM 构成表
,post_id ID,post_url URL ,title
,category ,pub_date ,
content 。3.3情报存储模块
Scrapy ,,PipeLine ,,、URL、,,Mysql ,pdf ,。,4。,
图4世界防务检索结果页面展示图5
世界防务详情页面展示
1post_id ID 2post_url URL 3title 4category 5pub_date 6
content

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。