【问题标题】:Scrape web with a query使用查询抓取网页
【发布时间】:2017-03-19 02:33:58
【问题描述】:

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

这是我第一次尝试使用 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”

提前感谢您的建议和帮助

【问题讨论】:

  • 请检查 web-scraping 库中的 Python,例如 beautifulsoup 或 scrapy。那里也有大量很棒的教程。我认为熊猫标签有点不适合您的问题。完成抓取后,熊猫将很有用。
  • @su79eu7k 谢谢你的建议,从..开始。但是这样的事情可能实现吗?
  • 根据this 博文:“任何可以在网页上查看的内容都可以被抓取。期间。” 现在,在某些情况下可能会非常困难这样做,但是对于像您上面这样的网站,这当然是可行的。

标签: python pandas web-scraping screen-scraping


【解决方案1】:

使用漂亮的汤和 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/

【讨论】:

  • 非常感谢..让我运行脚本并回复评论..再次感谢..
  • 在我的情况下,我有一个 ISSN 编号列表,没有可参考的 URL .. 主站点是已知的 researchgate.net,而不是可以从其中刮取 Journal Impact 的单个 URL。这里它是从给定的 URL 中抓取的。所以请您朝那个方向提供帮助。
  • 您可以使用 ISSN 创建 URL。我已经更新了使用 ISSN 创建 URL 的答案。这有帮助吗?
  • 这看起来可行但是..让我重新运行一下..我有一个 csv 文件,它有 3 列,其中之一是 ISSN 号..所以我们读取了 ISSN 号从那个 csv 列。在 researchgate.net 站点中搜索它,然后在 ISSN 编号旁边写入相应的 impact factor 值和 URL 作为输出 CSV 中的新列。那些没有值的我们可以作为 NAN 给出。这就是我想要做的..
  • 你在正确的轨道上。享受编码吧..:)..完成后发布您的代码..在问题中作为最终答案....
猜你喜欢
  • 2020-06-18
  • 2020-03-27
  • 2019-04-14
  • 2013-04-29
  • 2017-02-25
  • 2020-09-17
  • 2020-07-18
  • 2019-02-17
相关资源
最近更新 更多