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

时间:2018-03-21 16:37:40

标签: python list selenium hyperlink document

所以,这是交易:我有这个代码,它产生多个结果,我如何把所有这些结果放在一个文件?我想知道是否有可能将所有这些都列为链接。它是以这种方式来的

['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)

2 个答案:

答案 0 :(得分: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])

答案 1 :(得分:1)

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

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

或逐个打印(可能会长一点但很好):

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

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

$ python yourscript.py > myurls.txt