如何将所有这些链接放在一个文本文档中

2024-05-08 18:16:32 发布

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

所以,这里是交易:我有下面的代码,它会产生多个结果,我如何将所有这些结果放在一个文档中?我想知道是否有可能把所有这些都列为一个链接列表。就这样

['http://acervo.estadao.com.br/pagina/#!/20171101-45305-nac-1-pri-a1-not/busca/ministro', 'http://acervo.estadao.com.br/pagina/#!/20171004-45277-spo-1-pri-a1-not/busca/Minist%C3%A9rio', 'http://acervo.estadao.com.br/pagina/#!/20171004-45277-nac-1-pri-a1-not/busca/Minist%C3%A9rio', 'http://acervo.estadao.com.br/pagina/#!/20171109-45313-nac-1-pri-a1-not/busca/ministro', 'http://acervo.estadao.com.br/pagina/#!/20171219-45353-nac-1-pri-a1-not/busca/ministro', 'http://acervo.estadao.com.br/pagina/#!/20171122-45326-spo-1-pri-a1-not/busca/ministro', 'http://acervo.estadao.com.br/pagina/#!/20171122-45326-nac-1-pri-a1-not/busca/ministro', 'http://acervo.estadao.com.br/pagina/#!/20171229-45363-spo-1-pri-a1-not/busca/ministro', 'http://acervo.estadao.com.br/pagina/#!/20171229-45363-nac-1-pri-a1-not/busca/ministro', 'http://acervo.estadao.com.br/pagina/#!/20180105-45370-nac-1-pri-a1-not/busca/minist%C3%A9rio']

['http://acervo.estadao.com.br/pagina/#!/20180202-45398-spo-1-pri-a1-not/busca/ministro', 'http://acervo.estadao.com.br/pagina/#!/20180202-45398-nac-1-pri-a1-not/busca/ministro', 'http://acervo.estadao.com.br/pagina/#!/20180131-45396-spo-1-pri-a1-not/busca/ministro', 'http://acervo.estadao.com.br/pagina/#!/20100702-42626-spo-1-pri-a1-not/busca/Ministro', 'http://acervo.estadao.com.br/pagina/#!/20101202-42779-spo-1-pri-a1-not/busca/Minist%C3%A9rio', 'http://acervo.estadao.com.br/pagina/#!/20101220-42797-spo-1-pri-a1-not/busca/Minist%C3%A9rio', 'http://acervo.estadao.com.br/pagina/#!/20100904-42690-spo-1-pri-a1-not/busca/ministro', 'http://acervo.estadao.com.br/pagina/#!/20101102-42749-spo-1-pri-a1-not/busca/ministro', 'http://acervo.estadao.com.br/pagina/#!/20100514-42577-nac-1-pri-a1-not/busca/ministro', 'http://acervo.estadao.com.br/pagina/#!/20100915-42701-spo-1-pri-a1-not/busca/Minist%C3%A9rio']

但我想要一份清单,比如:

http://acervo.estadao.com.br/pagina/#!/20171101-45305-nac-1-pri-a1-not/busca/ministro
http://acervo.estadao.com.br/pagina/#!/20180202-45398-spo-1-pri-a1-not/busca/ministro
http://acervo.estadao.com.br/pagina/#!/20180131-45396-spo-1-pri-a1-not/busca/ministro
http://acervo.estadao.com.br/pagina/#!/20171101-45305-nac-1-pri-a1-not/busca/ministro

在一个.txt文档中,按获得顺序排列的一组链接。我不知道如何开始(我是编程新手)

opts = Options()
opts.add_argument("user-agent=Mozilla/5.0")

driver = webdriver.Chrome(chrome_options=opts)
x = 1

driver.get("http://acervo.estadao.com.br/procura/#!/ministro%3B minist%C3%A9rio|||/Acervo/capa//1/2000|2010|2010///Primeira")
time.sleep(5)
page_number = driver.find_element_by_class_name("page-ultima-qtd").text

for i in range(int(page_number)):
    link = ("http://acervo.estadao.com.br/procura/#!/ministro%3B minist%C3%A9rio|||/Acervo/capa//{}/2000|2010|2010///Primeira").format(x)
    #driver.get(link)
    links = WebDriverWait(driver, 10).until(EC.presence_of_all_elements_located((By.LINK_TEXT, "LEIA ESTA EDIÇÃO")))
    references = [link.get_attribute("href") for link in links]
    driver.find_element_by_class_name("seta-right").click()
    time.sleep(1)

    print(references)        
    x = x + 1
    #print(x)
    print(i)

Tags: brcomhttpa1drivernotpribusca
2条回答
import csv
list1 = ['a','b','c']
list2 = ['a','b','c']

#if your output your getting is lists you could put them all into one list first

master = list1 + list2
#concatenated lists
print(master)

#then simply send to file

with open("filenames.csv", 'w') as f:
    wr = csv.writer(f, lineterminator='\n')
    for row in master:
        wr.writerow([row])

最简单的解决方案:在打印前格式化references列表,即

# print(references)
print("\n".join(references))

或者一个接一个地打印它们(可能会稍微长一点,但很好):

# print(references)
for ref in references:
    print(ref) 

然后使用操作系统重定向将输出重定向到文件(linux示例):

$ python yourscript.py > myurls.txt

相关问题 更多 >

    热门问题