如何读取文本文件中的网址列表,并将所有响应保存到一个文本文件中?

问题描述

我在文本文件中有一个URL列表。我想将文本文件中的网址输入到我的代码脚本中,而不是将每个网址粘贴到脚本中,但不确定如何这样做。我也想将所有回复保存到一个文本文件中。谢谢

import requests
from datetime import datetime

def run():

    url = "https://en.wikipedia.org/wiki/NBA"

    payload = {}
    headers= {}

    response = requests.request("POST",url,headers=headers,data = payload)

    print(response.text)

startTime = datetime.Now()
run()
print(datetime.Now() - startTime)

文件:Wiki.text

https://en.wikipedia.org/wiki/NBA
https://en.wikipedia.org/wiki/NFL
https://en.wikipedia.org/wiki/MLB
https://en.wikipedia.org/wiki/NHL

解决方法

您可以执行以下操作:

import requests
list_of_pages = open('list_of_links.txt','r+')
save = open('output.txt','a+')
save.truncate(0)
for page_link in list_of_pages:
    url = page_link
    payload = {}
    headers = {}
    response = requests.request("POST",url,headers=headers,data=payload)
    save.write(str(response) + "\n")
,

尝试此操作,它返回Wiki.txt中每个页面的代码以及获取它所花费的时间:

import requests
from datetime import datetime
def run():
    links_file = open('Wiki.txt','r')
    outputs_file = open('outputs.txt','a')
    for link in links_file.readlines():  # run for ever line in file
            payload = {}
            headers = {}

            response = requests.request("POST",link,data=payload)

            outputs_file.write(response.text + '\n')
    links_file.close()
    outputs_file.close()

startTime = datetime.now()
run()
print(datetime.now() - startTime)

基本上,您要做的就是添加一个针对文件中每一行运行的循环,并将结果代码添加到另一个文本文件中。