python使用selenium提取script节点的内容不成功的解决方法

本文介绍了解决Selenium无法直接获取网页中script标签内容的问题,并提供了两种有效的方法:一是使用BeautifulSoup解析页面源码;二是利用正则表达式匹配目标内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   使用selenium提取script节点的内容失败,都是返回空字符串,提取的网址为https://mm.taobao.com/self/model_info.htm?user_id=687471686&is_coment=false

需要提取的内容如下图红框所示,其中type="text/javascript":



    代码如下:

if __name__ == '__main__':
    browser = webdriver.Chrome()
    browser.get('https://mm.taobao.com/self/model_info.htm?user_id=687471686&is_coment=false')
    time.sleep(5)
    driverElems = browser.find_elements_by_xpath('//script[@type="text/javascript"]')
    for x in driverElems:
        print x.text  # 为空字符

    解决方法一:使用BeautifulSoup库来提示script的内容,代码如下:

if __name__ == '__main__':
    browser = webdriver.Chrome()
    browser.get('https://mm.taobao.com/self/model_info.htm?user_id=687471686&is_coment=false')
    time.sleep(5)

    from bs4 import BeautifulSoup
    bsObj = BeautifulSoup(browser.page_source, 'html.parser')
    bsElems = bsObj.find_all('script', type='text/javascript')
    for x in bsElems:
        print x.string

 PS:安装BeautifulSoup库:

pip install beautifulsoup4


    解决方法二:使用正则表达式,代码如下:

if __name__ == '__main__':
    browser = webdriver.Chrome()
    browser.get('https://mm.taobao.com/self/model_info.htm?user_id=687471686&is_coment=false')
    time.sleep(5)

    import re
    r = re.findall(r'<script type="text/javascript">\n([\s\S]+?)</script>', browser.page_source, re.M)
    print r
    其中re.M表示多行匹配,?表示非贪婪模式,\s表示匹配任意空白字符,等价于 [\t\n\r\f],\S表示匹配任意非空字符。




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值