代码之家  ›  专栏  ›  技术社区  ›  Til Hund

python3.7嵌套循环未能正确迭代

  •  -1
  • Til Hund  · 技术社区  · 7 年前

    我有一个使用硒的小python3脚本,从一个网站抓取到旧报纸的链接。( http://digesto.asamblea.gob.ni/consultas/coleccion/ 但是,我的嵌套循环不能正常工作。

    它应遍历所有行,以收集发布日期,并将相应的PDF命名为( Gaceta_Oficial_Date.pdf )并遍历我列表中的所有链接,而不是遍历所有链接并将其命名为相同的链接。所以第一个循环不会迭代。

    但是如何使两个循环“一起工作”,从而使一个循环得到第一个循环的结果呢?

    这是脚本的相关部分:

    import os
    import datetime
    
    new_links = ['http://digesto.asamblea.gob.ni/consultas/util/pdf.php?type=rdd&rdd=vPjrUnz0wbA%3D',
    'http://digesto.asamblea.gob.ni/consultas/util/pdf.php?type=rdd&rdd=dsyx6l1Fbig%3D',
    'http://digesto.asamblea.gob.ni/consultas/util/pdf.php?type=rdd&rdd=Cb64W7EHlD8%3D',
    'http://digesto.asamblea.gob.ni/consultas/util/pdf.php?type=rdd&rdd=A4TKEG9x4F8%3D'] # only 4 links in list for simplification
    
    table_id = driver.find_element(By.ID, 'tableDocCollection')
    rows = table_id.find_elements_by_css_selector("tbody tr") # get all table rows
    
    title = "Gaceta_Oficial_"
    extension = ".pdf"
    for row in rows:
        col = row.find_elements(By.TAG_NAME, "td")[2]
        date = col.text
        print(date)
        date = datetime.datetime.strptime(date, '%d/%m/%Y').strftime('%Y%m%d')
        filename = title + str(date) + extension
        print(filename)
        for new_link in new_links:
            print("Downloading %s" % filename)
            r = requests.get(new_link)
            open(os.path.expanduser("~/Downloads/" + filename, 'wb').write(r.content)
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Til Hund    7 年前

    解决了问题 zip 对于这一行:

    for row, new_link in zip(rows, new_links):