Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用python下载动态加载的网页_Javascript_Jquery_Python_Html_Selenium - Fatal编程技术网

Javascript 用python下载动态加载的网页

Javascript 用python下载动态加载的网页,javascript,jquery,python,html,selenium,Javascript,Jquery,Python,Html,Selenium,我有这个,我想下载网页的内容 我尝试了selenium,并用它点击按钮,但没有成功 #!/usr/bin/env python from contextlib import closing from selenium.webdriver import Firefox import time # use firefox to get page with javascript generated content with closing(Firefox()) as browser: # s

我有这个,我想下载网页的内容

我尝试了selenium,并用它点击按钮,但没有成功

#!/usr/bin/env python
from contextlib import closing
from selenium.webdriver import Firefox
import time

# use firefox to get page with javascript generated content
with closing(Firefox()) as browser:
    # setting the url
    browser.get("http://bonusbagging.co.uk/oddsmatching.php#")
    # finding and clicking the button
    button = browser.find_element_by_id('select_button')
    button.click()
    page = browser.page_source
    time.sleep(5)
    print(page.encode("utf8"))
此代码仅下载隐藏数据的源代码

有人能告诉我正确的方法吗?或者告诉我如何下载隐藏的数据


提前谢谢

刮的时候我总是尽量避免硒,就像瘟疫一样;这是非常缓慢的,几乎从来不是最好的方式去做的事情。在刮之前,你应该更深入地挖掘源头;很明显,在这个页面上,html正在进入,然后一个单独的调用正在进行,以获取表的数据。为什么不做和页面相同的调用?它的速度非常快,不需要html解析;只返回原始数据,这似乎是您正在寻找的。python导入非常适合于此。刮得开心

import requests

table_data = requests.get('http://bonusbagging.co.uk/odds-server/getdata_slow.php').content

PS:查找这些调用的最佳方法是打开开发人员控制台,并查看网络选项卡。你可以看到这里正在打什么电话。另一种方法是转到sources选项卡,查找一些javascript,并搜索ajax调用,这就是我在上面调用的url的位置,路径是:top/赔率-server.com/赔率-server/js/table_slow.js。后一个选项有时更容易,但如果文件缩小/丑化,有时几乎不可能。做任何适合你的事

查看Chrome开发工具中的网络选项卡。从那里抓走

你现在看到的是一张照片。您可以使用他们的API获取所需的内容

调整开始和/或长度参数以逐页获取数据

它是JSON数据,因此非常容易解析


但是要友善,不要敲打这个可怜的家伙的服务器。

你试过使用beautifulSoup吗?找到这些电话的最好方法实际上是通过“网络”选项卡。并不是每个人都使用jQuery,和/或AJAX调用可以嵌套在某些压缩的源文件中。谢谢你的评论;你绝对是对的。我更新了我的答案以反映这一点。我通常喜欢看js,只是为了了解发生了什么,但你是对的;网络标签是防止内容被丑化或压缩的方法。非常感谢!看看网络标签就知道了!再次感谢