如何获取html页面中的所有标签和信息(特别是页面中的所有链接)?

时间:2019-01-30 08:12:59

标签: python parsing web-scraping beautifulsoup urllib

我正在尝试使用BeautifulSoup获取此页面上所有可用的链接。 但是,当使用urllib获取URL,然后使用BeautifulSoup解析URL时,我没有返回此页面上所有可用的信息。

我尝试了不同的解析器(html.parser,lxml,xml,html5lib),但是它没有返回期望的结果。

我知道如何获取标签详细信息,但是我存储html数据的文件不包含可用的链接。但是当我检查chrome上的元素时,它确实显示了链接。下面是我正在使用的URL代码:

def fetch_html(fullurl,contextstring):
    print("Opening the file connection for " + fullurl)
    uh= urllib.request.urlopen(fullurl, context=contextstring)
    print("HTTP status",uh.getcode())
    html =uh.read() 
    bs = BeautifulSoup(html, 'lxml')
    return bs
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE
mainurl ='https://www.daad.de/deutschland/studienangebote/international-programmes/en/result/?q=&degree%5B%5D=2&lang%5B%5D=2&fos=3&crossFac=&cert=&admReq=&scholarshipLC=&scholarshipSC=&langDeAvailable=&langEnAvailable=&lvlEn%5B%5D=&cit%5B%5D=&tyi%5B%5D=&fee=&bgn%5B%5D=&dur%5B%5D=&sort=4&ins%5B%5D=&subjects%5B%5D=&limit=10&offset=&display=list'
a=(fetch_html(mainurl, ctx))
f= open("F:\Harsh docs\python\courselinks.py","w")
f.write(a.prettify())
f.close

对于结果,我有兴趣获得“嵌入式系统(ESY)”的链接。

2 个答案:

答案 0 :(得分:0)

似乎您要抓取的页面正在使用javascript呈现。 您可以尝试使用硒和铬。 或者,您可以使用request_html软件包https://html.python-requests.org/ 在获取html之前呈现javascript

答案 1 :(得分:0)

仅从页面获取所有链接,请使用以下代码:(Python 3)

<div id='MessageHolder'></div>
<a href="#" id="testAnchor"></a>