Python 从html获取所有链接,即使使用“显示更多链接”

Python 从html获取所有链接,即使使用“显示更多链接”,python,html,beautifulsoup,Python,Html,Beautifulsoup,我正在使用python和beautifulsoup进行html解析 我正在使用以下代码: from BeautifulSoup import BeautifulSoup import urllib2 import re url = "http://www.wikipathways.org//index.php?query=signal+transduction+pathway&species=Homo+sapiens&title=Special%3ASearchPathways

我正在使用python和beautifulsoup进行html解析

我正在使用以下代码:

from BeautifulSoup import BeautifulSoup
import urllib2
import re

url = "http://www.wikipathways.org//index.php?query=signal+transduction+pathway&species=Homo+sapiens&title=Special%3ASearchPathways&doSearch=1&ids=&codes=&type=query"

main_url = urllib2.urlopen(url)
content = main_url.read()
soup = BeautifulSoup(content)

for a in soup.findAll('a',href=True):
    print a[href]
但我没有得到如下输出链接:

还有一件事是有107条通路。但我不会得到所有链接,因为其他LIN依赖于页面底部的“显示链接”


那么,如何从该url获取所有链接(107个链接)?

我建议使用
lxml
解析html更快更好值得花时间学习

from lxml.html import parse
dom = parse('http://www.wikipathways.org//index.php?query=signal+transduction+pathway&species=Homo+sapiens&title=Special%3ASearchPathways&doSearch=1&ids=&codes=&type=query').getroot()
links = dom.cssselect('a')

你的问题是第8行,
content=url.read()
。你实际上并没有阅读网页,你实际上只是什么都没做(如果有什么,你应该会得到一个错误)

main\u url
是您想要阅读的内容,因此将第8行更改为:

content = main_url.read()
您还有另一个错误,
打印[href]
href
应为字符串,因此应为:

print a['href']

我想在你的问题中补充这些细节。如果您需要使用,请展示更多可能需要phantomjs或selenium之类的东西。我不想使用selenium,因为它需要运行服务器。请让我知道模块,这将是易于处理的窗口是的,我到达,直到你张贴。它提供元素,我想从这些元素中找到名称。另外,你能让我知道如何获取所有107个路径链接吗?当一个网页兼容XML,但许多html页面不兼容时,lxml非常好。beautifulsoup擅长处理许多html欺骗。谢谢,但你能告诉我如何检索所有107个URL吗?有趣的是,在解析页面时,我得到了
,但所有107个链接都应该在那里,但它们不在那里。@sam内容加载了JavaScript,因此,要想让其他一切都变得美丽,ulsoup可能不是要使用的模块。查看
Selenium
(文档链接:)。我相信这个模块对于这样的事件会更好。@sam哦,我在下面注意到你不想使用Selenium。对不起