我正在尝试从特定网站或整个网络中获取期刊的影响因素。我一直在寻找接近但不幸的东西。
这是我第一次尝试使用python进行网页抓取。我正在尝试找到最简单的方法。
我有一个属于期刊的ISSN编号列表,我想从Web或特定站点检索它们的影响因子值。该列表具有超过50K的值,因此手动搜索这些值实际上很困难。
输入类型
Index,JOURNALNAME,ISSN,Impact Factor 2015,URL,ABBV,SUBJECT
1,4OR-A Quarterly Journal of Operations Research,1619-4500,,,4OR Q J OPER RES,Management Science
2,Aaohn Journal,0891-0162,,,AAOHN J,
3,Aapg Bulletin,0149-1423,,,AAPG BULL,Engineering
4,AAPS Journal,1550-7416,,,AAPS J,Medicine
5,Aaps Pharmscitech,1530-9932,,,AAPS PHARMSCITECH,
6,Aatcc Review,1532-8813,,,AATCC REV,
7,Abdominal Imaging,0942-8925,,,ABDOM IMAGING,
8,Abhandlungen Aus Dem Mathematischen Seminar Der Universitat Hamburg,0025-5858,,,ABH MATH SEM HAMBURG,
9,Abstract and Applied Analysis,1085-3375,,,ABSTR APPL ANAL,Math
10,Academic Emergency Medicine,1069-6563,,,ACAD EMERG MED,Medicine
需要什么?
上面的输入有一列ISSN编号。读取ISSN编号,然后在
researchgate.net
或网络中进行搜索。然后找到单个网页,搜索Impact Factor 2015
并检索值,将其放在ISSN号旁边的空白处,并将检索到的URL放在旁边这样一来,网络搜索就可以只限于一个站点,而一个关键字搜索该值..空的一个可以保留为“ NAN”
在此先感谢您的建议和帮助
最佳答案
使用漂亮的汤和urllib2尝试此代码。我正在使用h2标签并搜索“ Journal Impact:”,但我将让您决定提取数据的算法。汤中存在html内容,汤提供API提取它。我提供的是一个示例,可能对您有用。
#!/usr/bin/env python
import urllib2
from bs4 import BeautifulSoup
issn = '0219-5305'
url = 'https://www.researchgate.net/journal/%s_Analysis_and_Applications' % (issn)
htmlDoc = urllib2.urlopen(url).read()
soup = BeautifulSoup(htmlDoc, 'html.parser')
for tag in soup.find_all('h2'):
if 'Journal Impact:' in tag.text:
value = tag.text
value = value.replace('Journal Impact:', '')
value = value.strip(' *')
print value
输出:
1.13
我认为漂亮汤的官方文档非常好。如果您是新手,我建议您花一个小时在文档上,甚至尝试编写一些代码之前。花费在阅读文档上的那一小时将为您节省很多时间。
https://www.crummy.com/software/BeautifulSoup/
https://www.crummy.com/software/BeautifulSoup/bs4/doc/