SCI期刊信息整理爬虫
1、需求
按ISSN号进行搜索,整理一个特定期刊列表里的所有期刊的年文章、投稿难易和一审周期等信息。使用PHP脚本编写。
网址:http://www.medsci.cn/sci/
(1)按ISSN号搜索
(2)得到结果,以及需要提取的部分
2、分析问题
** 三个步骤: **
(1)使用网络蜘蛛从 http://www.medsci.cn/sci/ 网站抓取信息,模拟输入要搜索的ISSN号,提交表单,获得查询结果的页面。
(2)使用正则表达式搜索结果页面,分析页面代码结构,把需要的信息提取出来。
(3)输出到文件,因为此输出文件无需考虑单元格的排版,为了简便,直接输出为XML的逗号表达式格式。这种格式可以使用Excel直接打开。
** 选用的类库: **
*(1)网络蜘蛛Snoopy:
Snoopy是一个php类,用来模拟浏览器的功能,可以获取网页内容,发送表单。
*(2)Excel_XML
把array中的数据输出为XML格式的电子表格。
其格式如下:
1 |
|
3、关键问题
正则表达式匹配测试网站:http://www.rubular.com/
匹配所有汉字:
utf-8编码:
1 | preg_match("/^[\x{4e00}-\x{9fa5}A-Za-z0-9_]+$/u",$str) |
gbk编码:
1 | preg_match("/^[".chr(0xa1)."-".chr(0xff)."A-Za-z0-9_]+$/",$str) |
匹配特定汉字(比如候鸟):
utf-8编码:
1 |
|
gbk编码:
1 |
|
4、使用步骤
(1)输入格式为:
1751-8628,0308-5961,1472-3581,……
小技巧:可以通过拷贝Excel的ISSN号序列放到EditPlus中,Ctrl+H快捷键选择正则表达式复选框,把所有的\n替换为,即可。
(2)运行myspider.php脚本
(3)得到结果表格
5、程序源代码下载
期刊爬虫下载地址: http://download.csdn.net/detail/taylor_tao/4166037