簡體   English   中英

Python 請求:從一個 TXT 文件中獲取所有行,一次獲取一個請求並將它們保存到一個新的 TXT 文件中

[英]Python Requests: take all lines from a TXT file, one at a time to get requests from each and save them to a new TXT file

此處的代碼從 web archive.org 獲取一堆 URL,並將它們保存到一個新的 TXT 文件中。 我不想輸入(寫一個 url 地址),而是從 TXT 文件加載一堆 URLS。 所以x=input('URL:')必須用一些代碼替換,以便一次從 txt 文件加載每一行。

我已經嘗試了幾天了,我被卡住了! 請幫忙!

代碼:

x=input('Enter your url:-')
r = requests.get('http://web.archive.org/cdx/search/cdx?url=*.{}&output=text&fl=original&collapse=urlkey'.format(x))
with open('url.txt', 'a') as f:
    f.write('\n')
    f.writelines(str(r.text))
    f.write('\n')

首先,您需要將 urls.txt 文件中的所有 URL 都用新行分隔,然后使用 readlines() function 打開它。它將返回所有 URL 的列表。 這是完整的代碼。

import requests
with open('urls.txt') as file:
    # get the list of urls
    urls_list=file.readlines()
    for x in urls_list:
        r = requests.get('http://web.archive.org/cdx/search/cdx?url=*.{}&output=text&fl=original&collapse=urlkey'.format(x))
        print(r.status_code)

要從文件中讀取 URL,您可以使用下一個示例:

import requests

urls = []
with open("something.txt", "r") as f_in:
    for line in map(str.strip, f_in):
        if line == "":
            continue
        urls.append(line)

archive_url = "http://web.archive.org/cdx/search/cdx?url=*.{}&output=text&fl=original&collapse=urlkey"

with open("output.txt", "w") as f_out:
    for url in urls:
        print(url)
        r = requests.get(archive_url.format(url))
        print(r.text, file=f_out)
        print("\n", file=f_out)

something.txt包含域,例如:

google.com
yahoo.com

output.txt包含來自requests的響應

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM