从javascript函数获取文件

2024-10-01 17:36:29 发布

您现在位置:Python中文网/ 问答频道 /正文

需要使用Python从site下载文件。 文件列表是用JS函数生成的。在

//<![CDATA[




$(document).ready(function(){
        var url='/portalfront/portal/list/list-files.php';
        var data={paths:'/portalfront/nedlast/no/markets/analyser-rapporter/norske/anbefalte-aksjer/|usename=Anbefalte aksjer|count=52'};

        var myElement=Portal.getLocalizedString("PostError") || 'error';
        jQuery.ajax({
            url:url,
            data:data,
            dataType: "json",
            success: function(jdata) {           
                if(jdata.status.match(/ok/i)){
                    myElement='';
                    $.each(jdata.data, function(messageIndex, message) {
                         myElement+='<p class="moduleItemPdf"><a target="_blank" href="'+message['path']+'" class="moduleItem">'+message['date']+' '+message['name']+'</a></p>';
                    });             
                }
            },
            complete:function(xhr,status) {
                var _id="div#"+"anbefalte-aksjer-arkiv";
                $(_id).append(myElement);
                if($(_id).closest('div#column_right').length==0){
                    var e=parseInt($(_id).height());
                    var _height=40+(0 * 20);
                    $(_id).closest('.moduleWhite').height(e+_height);
                    Portal.alignModulesVertically();
                }
            }
        });
});



            //]]>

问题是我不熟悉JS。 我想我必须使用硒来完成这项任务,我认为它应该是这样的:

^{pr2}$
  1. 我应该在函数中加入什么?在
  2. 我应该得到什么?会是html吗?在
  3. 如何下载此文件?我的意思是我怎样才能收到它的链接?在

Tags: 文件函数idurlmessagedatavarjs
1条回答
网友
1楼 · 发布于 2024-10-01 17:36:29

您可以使用Selenium获取文件列表,然后使用Python下载它。 你能试试下面的代码吗?在

代码:

def download_file(url):
    local_filename = url.split('/')[-1]
    r = requests.get(url, stream=True)
    with open(local_filename, 'wb') as f:
        for chunk in r.iter_content(chunk_size=1024): 
            if chunk: 
                f.write(chunk)
    return local_filename

wd.get('https://www.dnb.no/bedrift/markets/analyser/arkiv/anbefalteaksjer.html')
time.sleep(5) 

pdfLinks = wd.find_elements_by_css_selector('.moduleItemPdf > a')

for linkElement in pdfLinks:
    filename=download_file(linkElement.get_attribute("href"))
    print(filename)



time.sleep(5)
wd.quit()

相关问题 更多 >

    热门问题