快捷导航

怎样抓取中国知网数据

2015-11-17 14:12| 发布者: HJLing| 查看: 14350| 评论: 38

摘要: 在中国知网通过高级检索,输入关键词后抓取相关文章的标题、作者、摘要、关键词等信息。但是中国知网在输入关键词搜索后网址并不会发生变化,所以在抓取的时候我们需要爬虫自动输入目标关键词搜索后,开始抓取数据。 ...

中国知网通过高级检索,输入关键词后抓取相关文章的标题、作者、摘要、关键词等信息。但是中国知网在输入关键词搜索后网址并不会发生变化,所以在抓取的时候我们需要爬虫自动输入目标关键词搜索后,开始抓取数据。

要抓取到标题、作者、摘要、关键词等信息,我们一共需要做四个规则:

第一个规则“知网_搜索负责输入关键词并搜索;

第二个规则“知网_搜索结果用来抓取第一个规则“知网_搜索”输入关键词后搜索到的数据,抓取的是每篇文章详情页的链接,作为第三个规则“知网_文章数据_更多”的线索,但是第二级规则直接抓取下来的链接不能像层级抓取那样直接给第三个规则使用,需要使用Excel统一修改一下链接参数才能作为第三个规则的线索,下文会为大家提供具体操作方式;

Tips:有些文章的摘要需要点击“更多”才能显示全部,为了抓取完整的摘要我们需要做一个规则来点击这个“更多”.

第三个规则“知网_文章数据_更多负责模拟点击展开完整摘要。

第四个规则“知网_文章数据抓取点击“更多”后的文章摘要、标题、作者、关键词等信息。

图1

一、第一个规则——知网_搜索

1.以中国知网高级检索文献文章为例,将文献高级检索的链接:http://epub.cnki.net/kns/brief/result.aspx?dbPrefix=scdb&action=scdbsearch&db_opt=SCDB 粘贴到谋数台中。

第一个规则的主要工作是为了搜索关键词,但是为了规则有效执行,在一个规则中我们抓取文章类型,在这里以文献为例我们抓取的内容就是“文献”并且勾上关键内容。

图2

如图2所示,具体操作如下:

#1.将目标抓取网页粘贴到谋数台网址栏处,并回车。

#2.看到网页加载完成。

#3.将抓取内容“文献”映射到整理箱中。

#4.将文献勾选关键内容。


2.跳转到连续动作工作台输入关键词及其动作

自动输入关键词的要点是要建立两条步骤,第一条步骤通过输入框的定位表达式来找到输入框后输入关键词。第二条步骤则是通过定位表达式找到搜索按钮然后爬虫自行点击按钮。

2.1建立输入步骤

图3

如图3所示,具体操作如下:

#1.输入目标主题名也就是第二个规则主题名,表示搜索关键词后由第二个规则来执行抓取

#2.点击谁在用查看输入的主题名是否有被别人占用,如果被别人已经占用则需要更换别的主题名。

#3.新建一条输入步骤,上文已经提到首先是进行输入动作,所以这里是新建一条输入步骤。

#4.输入要搜索的关键词。

#5.根据网页结构填写输入框的定位表达式也就是能够在网页上定位到输入框的XPath表达式,写好一个表达式后,可以利用MS谋数台的搜索功能,验证一下是否定位准确,具体参看搜索网页内容的使用方法。


2.2建立提交步骤

图4

如图4所示,具体操作如下:

#1.根据网页结构填写检索的定位表达式也就是能够在网页上定位到输入框的XPath表达式,写好一个表达式后,可以利用MS谋数台的搜索功能,验证一下是否定位准确,具体参看搜索网页内容的使用方法。

存规则后知网_搜索这个规则就完成了。



二、第二个规则——知网_搜索结果

这个规则负责来抓取由知网_搜索进行关键词搜索后的页面,该规则和定义普通规则操作相同。

将要抓取的内容映射到整理箱中,我们要抓取每篇文章的详细数据摘要作者等,则需建立层级抓取,在当前规则抓取每篇文章的详细数据页面的网址来为知网_文章数据生成线索。

图5

如图5所示,具体操作如下:

#1.将要抓取的下级链接映射到整理箱中

#2.勾关键内容

#3.点击整理箱顶节点做样例复制,要抓取当前页面所有文章的下级链接就需要做样例复制,详细参看教程样例复制

#4.跳转到爬虫路线工作台做翻页线索,要抓取翻页后的文章就要做翻页线索,详细参看教程: 翻页抓取

存规则后知网_搜索结果规则就完成了,接下来就需要做文章详细页面的抓取规则。



三、第三个规则——知网_文章数据_更多

1.将网页上的“更多”按钮做内容映射映射到整理箱中,并勾选关键内容。

2.在爬虫路线工作台做模拟点击,即为将“更多”作为记号做一条记号线索。

图6

如图6所示,具体操作如下:

#1.新建一条记号线索,并勾选连贯抓取,表示在执行抓取任务时,爬虫可以在同一个DS打数机窗口内抓取完当前页面后直接跳转到下一个页面进行抓取。

#2.点击“更多”按钮,自动定位到网页标签节点,展开节点,找到包含“更多”的text节点。

#3.右击text节点,线索映射→记号线索,可以看到“更多”自动填入到记号值。

#4.将节点做线索范围映射,右击翻页区块节点,选择线索映射→定位→线索1。完成后定位编号会显示翻页区块节点的定位编号。

存规则后知网_文章数据_更多规则就完成了,接下来就需要做点完“更多”知网来执行抓取的规则——知网_文章数据。

Tips:第三个、第四个规则演示的就是模拟点击,如果有不明白的同学可以参看教程:模拟点击



四、第四个规则——知网_文章数据

这个规则是最简单的类型,将需要抓取的内容映射到整理箱中即可。

图7

如图7所示,具体操作如下:

#1.将要抓取的内容做内容映射到整理箱中。



五、修改文章详细页面网址参数,构造出新的网址,为第三个规则——知网_文章数据_更多生成线索

将第二个规则采集到的详情页链接导入excel。

图8

可以发现不是完整的网址,DS打数机也无法构造网址直接生成可访问的网址,所以需要用excel手动修改。

对比详情页的完整网址,如下所示: http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=2&CurRec=1&recid=&filename=GGYY201410012&dbname=CJFDLAST2015&dbcode=CJFQ&pr=&urlid=&yx=&v=MTY1NDFyQ1VSTCtlWnVkc0Z5emhXcnJBSWlyU2Q3RzRIOVhOcjQ5RVpvUjhlWDFMdXhZUzdEaDFUM3FUcldNMUY=

可以发现采集到的链接少了前面的域名,并多了“/kns”这部分,可用函数修改链接,

图9

在单元格J2输入公式="http://www.cnki.net/KCMS"&RIGHT(I2,LEN(I2)-4)得到可访问的网址,并往下填充,这样得到的网址就可以批量添加作为第三个规则的线索。

若有疑问可以集搜客网络爬虫
8

鲜花

握手

雷人
1

路过
2

鸡蛋

刚表态过的朋友 (11 人)

相关阅读

发表评论

最新评论

评论 442759129 2017-4-9 19:00
Fuller: 规则二抓到的网址应该是用来点击“更多”的,你是说这个网址吗?
真的是最后一个问题了哈哈哈,就是我最后第一个规则和第二个规则做出来的网址不是由“大数据”检索出来的,而仅仅是知网首页的文章。也即是“大数据”输入这个操作出了问题,但我就是按照教程一步步来的,好奇怪。。。
评论 442759129 2017-4-9 11:19
Fuller: 规则二抓到的网址应该是用来点击“更多”的,你是说这个网址吗?
我发个贴子吧,这样的问题让更多人能看到~
评论 Fuller 2017-4-9 10:53
442759129: 好的,太谢谢你啦~还有一个小问题(我的问题好多hhhh,抱拳),这个规则二收集出来的网址修改后,是无法通过复制粘贴到浏览器直接打开的是吗? ...
规则二抓到的网址应该是用来点击“更多”的,你是说这个网址吗?
评论 442759129 2017-4-9 09:52
ym: 用这个网址去测试数据DIY上的“知网文献详情”,采集成功,没有失败。你采集失败,可能是网速原因,也可能是采集过程出现了验证码导致了采集失败,知网也是有反 ...
好的,太谢谢你啦~还有一个小问题(我的问题好多hhhh,抱拳),这个规则二收集出来的网址修改后,是无法通过复制粘贴到浏览器直接打开的是吗?
评论 ym 2017-4-8 22:10
442759129: <a href="http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=3&CurRec=1&filename=ZGDC201501002&dbname=CJFDLAST2015&dbcode=CJFQ&pr=&urlid=&yx=&uid=WEEvREcwSlJHS" target="_blank">http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=3&CurRec=1&filename=ZGDC201501002&dbname=CJFDLAST2015&dbcode=CJFQ&pr=&urlid=&yx=&uid=WEEvREcwSlJHS</a> ...
用这个网址去测试数据DIY上的“知网文献详情”,采集成功,没有失败。你采集失败,可能是网速原因,也可能是采集过程出现了验证码导致了采集失败,知网也是有反爬的,采集多了就容易出验证码,如果遇到需要手工输入一下。
评论 442759129 2017-4-8 21:53
Fuller: 添加的网址发出来一个,我测试一下看看
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=3&CurRec=1&filename=ZGDC201501002&dbname=CJFDLAST2015&dbcode=CJFQ&pr=&urlid=&yx=&uid=WEEvREcwSlJHSldRa1Fhb09jMjQxdjRYMVR6RW5KdVZGc3podzdqdDR5OD0=$9A4hF_YAuvQ5obgVAqNKPCYcEjKensW4ggI8Fm4gTkoUKaID8j8gFw!!&v=MTgzNjhIOVRNcm85RlpvUjhlWDFMdXhZUzdEaDFUM3FUcldNMUZyQ1VSTDJmWStabkZDamhVTHJNUHlyUGJiRzQ=
评论 Fuller 2017-4-5 17:25
442759129: 刚才我使用了diy的”知网文献详情“,但是总是抓取失败,为啥呢
添加的网址发出来一个,我测试一下看看
评论 442759129 2017-4-5 17:22
442759129: 我使用diy数据下载下来的数据仅限于这篇帖子所说的第一、二个规则,我想进入到第三四个规则中,也就是进入到单独文章的界面然后得到它关于摘要和参考文献的信息 ...
刚才我使用了diy的”知网文献详情“,但是总是抓取失败,为啥呢
评论 Fuller 2017-4-5 17:12
442759129: 我使用diy数据下载下来的数据仅限于这篇帖子所说的第一、二个规则,我想进入到第三四个规则中,也就是进入到单独文章的界面然后得到它关于摘要和参考文献的信息 ...
把问题发到论坛上讨论吧,那里还可以贴图,更方便。第二级运行完成后,得到抓取结果,把里面的网址拷贝出来,放在excel中,导入到知网详情那个数据DIY工具中,就是第三级的规则,知网详情的爬虫是:http://www.gooseeker.com/res/datadiy.html?category=%E7%83%AD%E9%97%A8%E6%95%B0%E6%8D%AE&web=%E7%9F%A5%E7%BD%91&rule=%E7%9F%A5%E7%BD%91%E6%96%87%E7%8C%AE%E8%AF%A6%E6%83%85
评论 442759129 2017-4-5 16:43
Fuller: 有些时候不能用层级抓取,但是使用网址的时候就会失效,具体怎么运行要看这个文档。目前这些规则都放在数据DIY板块了,不用下载规则,直接运行爬虫就行,网址:h ...
我使用diy数据下载下来的数据仅限于这篇帖子所说的第一、二个规则,我想进入到第三四个规则中,也就是进入到单独文章的界面然后得到它关于摘要和参考文献的信息,怎么弄呢?
评论 Fuller 2017-4-4 17:21
442759129: 这四个规则都是独立存在的吗?分别建立四个规则并保存?也即是有四个主题,不存在多层抓取?
有些时候不能用层级抓取,但是使用网址的时候就会失效,具体怎么运行要看这个文档。目前这些规则都放在数据DIY板块了,不用下载规则,直接运行爬虫就行,网址:http://www.gooseeker.com/res/datadiy.html?category=&web=%E7%9F%A5%E7%BD%91 。他们之间的关系参看攻略:http://www.gooseeker.com/doc/thread-5603-1-1.html
评论 442759129 2017-4-4 16:13
这四个规则都是独立存在的吗?分别建立四个规则并保存?也即是有四个主题,不存在多层抓取?
评论 halosir 2017-1-4 09:37
有的摘要没有‘’更多‘’怎么办?要分别处理吗?
评论 Fuller 2016-10-16 12:24
1432507260: 请问第一个规则和第二个规则是分别单独运行吗?我第二个规则为什么运行不了?
第一层到第二层用的是连续动作,那么第二层就不能单独运行,一定要从第一层开始。连续动作和普通的层级抓取不一样,一定要从头开始执行。而第二层到第三层则是普通层级抓取,所以,第三层可以单独运行
评论 1432507260 2016-10-16 10:59
请问第一个规则和第二个规则是分别单独运行吗?我第二个规则为什么运行不了?
评论 Fuller 2016-9-11 11:34
lusiluo: 您好,我的按着教程制作的规则可以成功抓取到部分页面的信息,但也有相当一部分的页面抓取错误,显示规则不适用,请问这该怎么办呐? ...
你自己做的规则吗?如果是自己做的,你在论坛上把规则的主题名贴出来,让技术人员帮忙检查一下规则的适应性
评论 lusiluo 2016-9-11 11:22
您好,我的按着教程制作的规则可以成功抓取到部分页面的信息,但也有相当一部分的页面抓取错误,显示规则不适用,请问这该怎么办呐?
评论 ym 2016-9-5 10:17
elegantcoin: 可以抓取到那些不能下载的文章吗?
这个教程是采集文章摘要信息,即使不能下载也是能采到其摘要的。
评论 Fuller 2016-9-5 10:15
elegantcoin: 可以抓取到那些不能下载的文章吗?
网络爬虫只是一个下载工具,前提是您需要有访问数据的权限,网络爬虫只提高下载和存储效率,但是它不能下载没有权限看的内容
评论 elegantcoin 2016-9-5 10:12
可以抓取到那些不能下载的文章吗?

查看全部评论(38)

集搜客GooSeeker网络爬虫 ( 粤ICP备11065265号-2 )

GMT+8, 2017-9-25 12:26