首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Selenium似乎没有加载网站的JavaScript部分

Selenium似乎没有加载网站的JavaScript部分
EN

Stack Overflow用户
提问于 2021-06-04 17:02:46
回答 1查看 23关注 0票数 0

你好,我有一个使用Python和Selenium的脚本,我不明白为什么这不能检索网站的JS部分(同样的脚本在我的另一台机器上运行得很好):

代码语言:javascript
运行
复制
        import chromedriver_binary
        from bs4 import BeautifulSoup
        
        chrome_options = webdriver.ChromeOptions()
        chrome_options.add_argument("--headless")
        chrome_options.add_argument("--disable-gpu")
        chrome_options.add_argument("window-size=1024,768")
        chrome_options.add_argument("--no-sandbox")
        chrome_options.add_argument("--enable-javascript")
        
        url = "https://deliveroo.co.uk/restaurants/london/holborn?geohash=gcpvj6kxet58&collection=pizza"
        driver = webdriver.Chrome(chrome_options=chrome_options)
        driver.get(url)
        soup = BeautifulSoup(driver.page_source, "lxml")

        show_data = soup.find_all("script", id="__NEXT_DATA__")
        mydata = json.loads( show_data[0].text )

我得到了以下错误,这意味着它无法看到JSON的这一部分:

代码语言:javascript
运行
复制
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

我不太确定为什么这能在我的另一台机器上工作,而不能在我现在的机器上工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-04 18:16:58

.text属性在这里不起作用。为了获得正确的数据,我使用了encode_contents(),只需像这样更改mydata的定义:

代码语言:javascript
运行
复制
mydata = json.loads( show_data[0].encode_contents())
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67834474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档