代码之家  ›  专栏  ›  技术社区  ›  erocoar

Python从网站中提取某些链接

  •  2
  • erocoar  · 技术社区  · 10 年前

    我想从 website .

    为了提取所有链接,我尝试了:

    import urllib
    import xml.etree.ElementTree as ET
    from BeautifulSoup import *
    
    url = 'http://pdok.bundestag.de/index.php?qsafe=&aload=off&q=kleine+anfrage&x=0&y=0&df=22.10.2013&dt=13.01.2016'
    uh = urllib.urlopen(url)
    data = uh.read()
    soup=BeautifulSoup(data)
    soup.prettify()
    
    for href in soup.findAll('a'):
        print href
    

    现在,我得到了一个链接列表,但由于某些原因,我没有得到 tbody 。我也尝试过使用ElementTree,但我在读取链接时出错,因为它使用了一些无效的符号(?)。非常感谢任何帮助!:)

    1 回复  |  直到 10 年前
        1
  •  3
  •   gtlambert    10 年前

    urllib 用Javascript加载网站的HTML 关 。您试图在中获取的链接 tbody 由JavaScript渲染,因此永远不要加载。

    您可以通过在浏览器中关闭JavaScript并访问网站来复制这种行为。如果你经常刮,你可能希望下载一个浏览器插件,它可以让你快速打开和关闭JavaScript。

    要清除使用JavaScript加载HTML内容的网站,您可能希望探索浏览器自动化选项,例如 selenium .