第一个爬虫

今天打算开始着手做BioASQ的项目——除了看论文的部分。

学长分配的最初步内容是,去统计一下数据集里面list/factoid的数量,以及exact ans 在 snippets中的出现次数。本来觉得这是个很简单的数据处理任务嘛,然后突然意识到,snippets里的document给的是网址,这岂不是意味着,我要写爬虫了????一脸懵逼啊。然后立马开始查代码怎么写。

最初看到的是用httplib2模块request(http://blog.csdn.net/wklken/article/details/7364390)。发现我没有这个模块,于是去下载安装了一下。

*将代码包下载好,解压。

*进入cmd,来到解压完的目录(这个文件夹里应该有一个setup.py的文件),在这里输入命令 python setup.py install,然后就搞定了。

*PS:开着的kernel无法检测新安装的模块,需要重启一下。

然后run了一下demo,报错:[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.....),度娘了一下:大致原因是服务端用了自签名证书或者是客户端无法识别该证书有效性, 以至于报了认证失败的异常。(http://blog.csdn.net/moxiaomomo/article/details/53032856) 他给的方案是不进行验证或者下载*.crt 或 *pem ,进行适当的配置之后再访问。看到这里真是一脸懵逼,尝试了直接不验证发现我用的模块和他的不一样,遂放弃。

接着找了另外一个解决方案 (http://www.111cn.net/phper/python/103529.htm)给出的方案是在urlopen中传入上下文参数。

按照他的写了一下,总算是不报错,而且跑出东西来了——一堆html代码。觉得可以根据标签筛了,但是似乎还很烦;之后仔细研究一下urllib2这个模块吧

 1 #!/usr/bin/python  
 2 # coding:utf-8   
 3 import urllib2  
 4 import ssl
 5 
 6           
 7 def GetPage(url,headers={}): 
 8     context = ssl._create_unverified_context()
 9     return urllib2.urlopen(url, context=context).read()
10     
11 print GetPage('http://www.ncbi.nlm.nih.gov/pubmed/15829955',{})

To be finished...

 

posted @ 2017-07-16 23:47  Sherry-queen  阅读(225)  评论(0编辑  收藏  举报