BeautifulSoup
'a ihtiyacınız yok.
import requests
bibtex_id = '10.1007/s00425-007-0544-9'
url = "http://www.doi2bib.org/#/doi/{id}".format(id=bibtex_id)
xhr_url = 'http://www.doi2bib.org/doi2bib'
with requests.Session() as session:
session.get(url)
response = session.get(xhr_url, params={'id': bibtex_id})
print(response.content)
Baskılar: Ayrıca şunu da yapabilirsiniz
@article{Burgert_2007,
doi = {10.1007/s00425-007-0544-9},
url = {http://dx.doi.org/10.1007/s00425-007-0544-9},
year = 2007,
month = {jun},
publisher = {Springer Science $\mathplus$ Business Media},
volume = {226},
number = {4},
pages = {981--987},
author = {Ingo Burgert and Michaela Eder and Notburga Gierlinger and Peter Fratzl},
title = {Tensile and compressive stresses in tracheids are induced by swelling based on geometrical constraints of the wood cell},
journal = {Planta}
}
requests
ile, bibtex alıntı doldurun örneğin, onu taklit etmek sunucuya gönderilen bir ek XHR istek yoktur selenium
ile çöz.
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Firefox()
driver.get('http://www.doi2bib.org/#/doi/10.1007/s00425-007-0544-9')
element = WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//pre[@ng-show="bib"]')))
print(element.text)
driver.close()
yukarıdaki çözüm olarak aynı yazdırır: Burada anahtar hüner alıntı to become visible beklemek bir Explicit Wait kullanmaktır.
Bunun için teşekkürler. Ek isteğin http://www.doi2bib.org/doi2bib adresine nasıl gönderildiğini bana söyler misiniz? Buna oldukça yeni. – Nick
@Not emin, açık tarayıcı geliştirici araçları-> ağ sekmesi. Web sitesine gidin ve sayfa yüklenirken sunucuya gönderilen tüm istekleri görün. Diğerleri arasında bahsettiğim şeyi göreceksiniz. Umarım yardımcı olur. – alecxe