Python 2.7 Beautifulsoup-从脚本标记获取值

Python 2.7 Beautifulsoup-从脚本标记获取值,python-2.7,beautifulsoup,Python 2.7,Beautifulsoup,我想从脚本标记中提取文件链接 在Python2.7中如何实现这一点 结构如下: <more script tags> <script> var settings= { primary: 'user-o', opt: window.userfiles, files: [ { //title: "PDF File",

我想从脚本标记中提取文件链接

在Python2.7中如何实现这一点

结构如下:

<more script tags>
<script>
var settings=
    {
    primary: 'user-o',
    opt: window.userfiles,
    files:  [
                    {
                        //title: "PDF File",
                        image: 'http://url.com/num-001/cover.jpg',
                        sources:
                            [
                                {
                                    'label': '',
                                    'file': 'http://url.com/user/0054552/file-1.pdf',
                                    'type': 'user-o'
                                },
                                {
                                    'label': '',
                                    'file': 'http://url.com/user/0054552/file-2.pdf'
                                }

                            ],

                        other:
                            [
                                {
                                    file: 'http://url.com/user/0054552/other-file-0.pdf',
                                    kind: 'other-files'
                                }
                            ]
                    }

            ]
    };
</script>
<more script tags>

变量设置=
{
主:'user-o',
opt:window.userfiles,
档案:[
{
//标题:“PDF文件”,
图像:'http://url.com/num-001/cover.jpg',
资料来源:
[
{
“标签”:“,
'文件':'http://url.com/user/0054552/file-1.pdf',
'type':'user-o'
},
{
“标签”:“,
'文件':'http://url.com/user/0054552/file-2.pdf'
}
],
其他:
[
{
档案:'http://url.com/user/0054552/other-file-0.pdf',
种类:'其他文件'
}
]
}
]
};
我需要所有文件链接:

  • …url.com//user/0054552/file-1.pdf
  • …url.com//user/0054552/file-2.pdf
  • …url.com//user/0054552/other-file-0.pdf
我希望你的支持


谢谢

既然您已经得到了这个脚本,您只需要将它转换为文本并进行处理

此代码将:

s = '''<more script tags>
<script>
var settings=
    {
    primary: 'user-o',
    opt: window.userfiles,
    files:  [
                    {
                        //title: "PDF File",
                        image: 'http://url.com/num-001/cover.jpg',
                        sources:
                            [
                                {
                                    'label': '',
                                    'file': 'http://url.com/user/0054552/file-1.pdf',
                                    'type': 'user-o'
                                },
                                {
                                    'label': '',
                                    'file': 'http://url.com/user/0054552/file-2.pdf'
                                }

                            ],

                        other:
                            [
                                {
                                    file: 'http://url.com/user/0054552/other-file-0.pdf',
                                    kind: 'other-files'
                                }
                            ]
                    }

            ]
    };
</script>
<more script tags>'''

files = []
data = s.split('\n')
for d in data:
    if '.pdf' in d:
        url = d.split(": ")[1].replace("'", "").replace(",", "")
        print(url)
        files.append(url)
'http://url.com/user/0054552/file-1.pdf'
'http://url.com/user/0054552/file-2.pdf'
'http://url.com/user/0054552/other-file-0.pdf'
  • split
    此脚本文本块位于每个
    \n
  • 对于每个字符串,搜索子字符串
    .pdf
  • 如果
    字符串包含子字符串
    .pdf
    将其拆分为
    :'
    替换
  • url部分附加到名为
    文件的
    列表中
  • 完成
  • 代码:

    s = '''<more script tags>
    <script>
    var settings=
        {
        primary: 'user-o',
        opt: window.userfiles,
        files:  [
                        {
                            //title: "PDF File",
                            image: 'http://url.com/num-001/cover.jpg',
                            sources:
                                [
                                    {
                                        'label': '',
                                        'file': 'http://url.com/user/0054552/file-1.pdf',
                                        'type': 'user-o'
                                    },
                                    {
                                        'label': '',
                                        'file': 'http://url.com/user/0054552/file-2.pdf'
                                    }
    
                                ],
    
                            other:
                                [
                                    {
                                        file: 'http://url.com/user/0054552/other-file-0.pdf',
                                        kind: 'other-files'
                                    }
                                ]
                        }
    
                ]
        };
    </script>
    <more script tags>'''
    
    files = []
    data = s.split('\n')
    for d in data:
        if '.pdf' in d:
            url = d.split(": ")[1].replace("'", "").replace(",", "")
            print(url)
            files.append(url)
    
    'http://url.com/user/0054552/file-1.pdf'
    'http://url.com/user/0054552/file-2.pdf'
    'http://url.com/user/0054552/other-file-0.pdf'
    

    既然您已经得到了这个脚本,您只需要将它转换为文本并进行处理

    此代码将:

    s = '''<more script tags>
    <script>
    var settings=
        {
        primary: 'user-o',
        opt: window.userfiles,
        files:  [
                        {
                            //title: "PDF File",
                            image: 'http://url.com/num-001/cover.jpg',
                            sources:
                                [
                                    {
                                        'label': '',
                                        'file': 'http://url.com/user/0054552/file-1.pdf',
                                        'type': 'user-o'
                                    },
                                    {
                                        'label': '',
                                        'file': 'http://url.com/user/0054552/file-2.pdf'
                                    }
    
                                ],
    
                            other:
                                [
                                    {
                                        file: 'http://url.com/user/0054552/other-file-0.pdf',
                                        kind: 'other-files'
                                    }
                                ]
                        }
    
                ]
        };
    </script>
    <more script tags>'''
    
    files = []
    data = s.split('\n')
    for d in data:
        if '.pdf' in d:
            url = d.split(": ")[1].replace("'", "").replace(",", "")
            print(url)
            files.append(url)
    
    'http://url.com/user/0054552/file-1.pdf'
    'http://url.com/user/0054552/file-2.pdf'
    'http://url.com/user/0054552/other-file-0.pdf'
    
  • split
    此脚本文本块位于每个
    \n
  • 对于每个字符串,搜索子字符串
    .pdf
  • 如果
    字符串包含子字符串
    .pdf
    将其拆分为
    :'
    替换
  • url部分附加到名为
    文件的
    列表中
  • 完成
  • 代码:

    s = '''<more script tags>
    <script>
    var settings=
        {
        primary: 'user-o',
        opt: window.userfiles,
        files:  [
                        {
                            //title: "PDF File",
                            image: 'http://url.com/num-001/cover.jpg',
                            sources:
                                [
                                    {
                                        'label': '',
                                        'file': 'http://url.com/user/0054552/file-1.pdf',
                                        'type': 'user-o'
                                    },
                                    {
                                        'label': '',
                                        'file': 'http://url.com/user/0054552/file-2.pdf'
                                    }
    
                                ],
    
                            other:
                                [
                                    {
                                        file: 'http://url.com/user/0054552/other-file-0.pdf',
                                        kind: 'other-files'
                                    }
                                ]
                        }
    
                ]
        };
    </script>
    <more script tags>'''
    
    files = []
    data = s.split('\n')
    for d in data:
        if '.pdf' in d:
            url = d.split(": ")[1].replace("'", "").replace(",", "")
            print(url)
            files.append(url)
    
    'http://url.com/user/0054552/file-1.pdf'
    'http://url.com/user/0054552/file-2.pdf'
    'http://url.com/user/0054552/other-file-0.pdf'
    

    你自己已经有这个脚本标签了?你所需要的只是处理这段文本以获得URL?是的,我自己。我只需要文件链接。是否始终使用pdf文件?是的,仅使用pdf文件。您自己已经获得了此脚本标记?你所需要的只是处理这段文本以获得URL?是的,我自己。我只需要文件链接。是否总是pdf文件?是的,只是pdf文件。