当我在浏览器中查看页面源时,我出现的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。
答案 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')