使用python请求和beautifulsoup4在响应中缺少html

时间:2016-05-04 07:57:08

标签: python html beautifulsoup python-requests

当我在浏览器中查看页面源时,我出现的html就会出现在那里。但是,当我使用python请求发出请求时,html不会出现。

我正在尝试抓取的网址是http://dota2lounge.com/match?m=13362,我在页面中的特定html是。

r = requests.get('http://dota2lounge.com/match?m=13268')
soup = bs(r.content, 'lxml')
buttons = soup.find_all('a', class_='button')

我想获得按钮的'onclick'值。到目前为止,我已经尝试过:

r.content

哪个不起作用。

{{1}}

似乎也没有显示html。

2 个答案:

答案 0 :(得分:1)

当你在python中发出请求时,看起来你想要的元素是通过javascript添加的。查看this question

如果您只是抓一次(即您只是想要数据并且您不想构建机器人来为您玩游戏),最快的选择通常只是创建一个仅包含.htm的文件链接到您要抓取的每个页面(将每个链接放在<a>标记中,您甚至不需要文本)。然后,您可以在firefox中使用downthemall之类的工具,以正确的格式保存每个页面的本地副本。

答案 1 :(得分:0)

试试这个

soup = BeautifulSoup(r.text, "html.parser")
for link in soup.findAll('a'):
        print link.get('onclick')