我有这个链接: http://dx.doi.org/10.1109/mper.1991.88667
如何使用python获取它的标题并在其中找到arnumber=88667
?
这意味着:只获得http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=88667
(而不是所有的网站或其他)
然后找到arnumber = 88667。
非常感谢提前。
答案 0 :(得分:0)
最简单的选择是使用python的urllib2
和urlparse
模块。如果仅检索文章编号就是您想要的全部内容,则不需要像requests
这样的外部库或框架。这是代码:
import urllib2
from urlparse import parse_qs, urlsplit
response = urllib2.urlopen('http://dx.doi.org/10.1109/mper.1991.88667')
url = response.url
print url # http://ieeexplore.ieee.org:80/xpl/articleDetails.jsp?reload=true&arnumber=88667
article = parse_qs(urlsplit(url).query)['arnumber'][0]
print article # 88667
这段代码可能看起来有点长而且冗长,但是,这应该可以帮助您了解它实际上做了什么。
如果你以后需要做更高级的事情,比如模拟浏览器(浏览一系列页面,接受cookie等),我可以推荐mechanize
。这是一个非常强大的库,如果您只想检索文章编号,可能会有很多。如何获取arnumber字符串在下面的示例代码中给出:
from mechanize import Browser
from urlparse import parse_qs, urlsplit
br = Browser()
response = br.open('http://dx.doi.org/10.1109/mper.1991.88667')
url = response.geturl()
print url # http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=88667
article = parse_qs(urlsplit(url).query)['arnumber'][0]
print article # 88667
答案 1 :(得分:0)
您可以使用requests
和urlparse
库:
import requests
from urlparse import parse_qs, urlsplit
r = requests.get('http://dx.doi.org/10.1109/mper.1991.88667')
print parse_qs(urlsplit(r.url).query)['arnumber'][0]
虽然看起来确实如此:
print 'http://dx.doi.org/10.1109/mper.1991.88667'.rpartition('.')[2]
答案 2 :(得分:0)
pip install requests
import requests
from urlparse import parse_qs, urlsplit
r = requests.get("http://dx.doi.org/10.1109/mper.1991.88667")
url = r.url
get_parameter = parse_qs(urlsplit(url).query)['arnumber'][0]
可以在requests documentation和urlparse documentation中找到更多信息。
答案 3 :(得分:0)
另一种选择(没有请求或机械化):
import urllib2
url_path = "http://dx.doi.org/10.1109/mper.1991.88667"
urllib2.urlparse.parse_qs(urllib2.urlopen(url_path).url)["arnumber"][0]
>>> '88667'