使用查询抓取网页

时间:2016-11-05 09:15:58

标签: python pandas web-scraping screen-scraping

我正试图从特定网站或整个网络中剔除期刊的影响因素。我一直在寻找一些接近但运气不好的东西..

这是我第一次尝试使用python进行网页搜索。我想找到最简单的方法。

我有一份属于期刊的ISSN号码列表,我想从网站或特定网站检索它们的影响因子值。该列表具有超过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"

提前感谢您的建议和帮助

2 个答案:

答案 0 :(得分:4)

使用美丽的汤和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/

答案 1 :(得分:1)

我真的不明白你想要什么,但我认为你需要BeautifulSoup

它是python中的网络抓取库,它真的很容易使用你可以找到一个 BeautifulSoup tutorial here

相关问题