このリンクがあります: http://dx.doi.org/10.1109/mper.1991.88667
Pythonでヘッダーを取得してその中で見つけるにはどうすればよいarnumber=88667
ですか? つまり、http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=88667 のみを取得し
(サイトやその他のすべてではなく)、arnumber=88667 を見つけます。
よろしくお願いします。
このリンクがあります: http://dx.doi.org/10.1109/mper.1991.88667
Pythonでヘッダーを取得してその中で見つけるにはどうすればよいarnumber=88667
ですか? つまり、http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=88667 のみを取得し
(サイトやその他のすべてではなく)、arnumber=88667 を見つけます。
よろしくお願いします。
別のオプション (リクエストまたは機械化なし):
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'
最も簡単なオプションは、pythonurllib2
と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
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]
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]
詳細については、リクエストのドキュメントとurlparse のドキュメントを参照してください。