使用BeautifulSoup进行错误的解析

时间:2018-03-04 13:36:21

标签: python beautifulsoup urllib

我想访问本网站的标题: 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

1 个答案:

答案 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"])