我想访问本网站的标题: https://zenodo.org/search?page=1&size=20&q=broma Actualy,我使用BeautifulSoup,但是当我使用此代码访问时,结果为空([]):
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup
def generateSoup(my_url):
uClient = uReq(my_url)
page_html = uClient.read()
uClient.close()
return soup(page_html,"lxml")
page_soup = generateSoup('https://zenodo.org/search?page=1&size=20&q=broma')
containers = page_soup.findAll('a',{'class':'ng-binding'})
print(containers)
如果你能纠正我的代码或给我另一个我可以合作的图书馆,我将非常感谢你的帮助。
谢谢大家。
编辑:问题是HTML WebSite没有这个元素: Element
答案 0 :(得分:2)
本网站使用AJAX显示结果,您可以找到获取JSON结果的AJAX请求。
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup
import json
def generateJson(my_url):
uClient = uReq(my_url)
page_html = uClient.read()
uClient.close()
return json.loads(page_html.decode("utf-8"))
page_json = generateJson('https://zenodo.org/api/records/?page=1&size=20&q=broma')
print(page_json["hits"]["hits"][0]["metadata"]["title"])