第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從文本文件讀取 url 后,如何將所有響應(yīng)保存到單獨的文件中?

從文本文件讀取 url 后,如何將所有響應(yīng)保存到單獨的文件中?

素胚勾勒不出你 2023-05-23 14:51:10
我有一個腳本,它從文本文件中讀取 url,執(zhí)行請求,然后將所有響應(yīng)保存在一個文本文件中。如何將每個響應(yīng)保存在不同的文本文件中,而不是全部保存在同一個文件中?例如,如果我標(biāo)記為 input.txt 的文本文件有 20 個 url,我想將響應(yīng)保存在 20 個不同的 .txt 文件中,例如 output1.txt、output2.txt,而不是只保存一個 .txt 文件。因此對于每個請求,響應(yīng)都保存在一個新的 .txt 文件中。謝謝import requestsfrom bs4 import BeautifulSoupwith open('input.txt', 'r') as f_in:    for line in map(str.strip, f_in):        if not line:            continue        response = requests.get(line)        data = response.text        soup = BeautifulSoup(data, 'html.parser')        categories = soup.find_all("a", {"class":'navlabellink nvoffset nnormal'})        for category in categories:            data = line + "," + category.text            with open('output.txt', 'a+') as f:                f.write(data + "\n")                print(data)          
查看完整描述

4 回答

?
MMMHUHU

TA貢獻1834條經(jīng)驗 獲得超8個贊

這是實現(xiàn)其他人暗示的快速方法:


import requests

from bs4 import BeautifulSoup



with open('input.txt', 'r') as f_in:

    for i, line in enumerate(map(str.strip, f_in)):

        if not line:

            continue


        ...


            with open(f'output_{i}.txt', 'w') as f:

                f.write(data + "\n")

                print(data)  


查看完整回答
反對 回復(fù) 2023-05-23
?
汪汪一只貓

TA貢獻1898條經(jīng)驗 獲得超8個贊

您可以使用open('something.txt', 'w'). 如果找到該文件,它將刪除其內(nèi)容。否則,它會創(chuàng)建一個名為“something.txt”的新文件?,F(xiàn)在,您可以使用它file.write()來寫您的信息了!



查看完整回答
反對 回復(fù) 2023-05-23
?
慕神8447489

TA貢獻1780條經(jīng)驗 獲得超1個贊

我不確定,如果我理解你的問題是正確的。

我會創(chuàng)建一個數(shù)組/列表,并為每個 url 請求和響應(yīng)創(chuàng)建一個對象。然后將對象添加到數(shù)組/列表并為每個對象寫入一個不同的文件。


查看完整回答
反對 回復(fù) 2023-05-23
?
嚕嚕噠

TA貢獻1784條經(jīng)驗 獲得超7個贊

至少有兩種方法可以為每個 url 生成文件。一個,如下所示,是創(chuàng)建文件的一些數(shù)據(jù)唯一數(shù)據(jù)的散列。在這種情況下,我選擇了類別,但您也可以使用文件的全部內(nèi)容。這將創(chuàng)建一個用于文件名的唯一字符串,這樣具有相同類別文本的兩個鏈接在保存時不會相互覆蓋。


另一種方法(未顯示)是在數(shù)據(jù)本身中找到一些唯一值,并將其用作文件名而不對其進行哈希處理。然而,這可能會導(dǎo)致比它解決的問題更多的問題,因為 Internet 上的數(shù)據(jù)不應(yīng)該被信任。


這是您的代碼,其中包含用于文件名的 MD5 哈希。MD5 不是密碼的安全散列函數(shù),但它可以安全地創(chuàng)建唯一的文件名。


更新的片段

import hashlib


import requests

from bs4 import BeautifulSoup




with open('input.txt', 'r') as f_in:

    for line in map(str.strip, f_in):

        if not line:

            continue


    response = requests.get(line)

    data = response.text

    soup = BeautifulSoup(data, 'html.parser')

    categories = soup.find_all("a", {"class":'navlabellink nvoffset nnormal'})


    for category in categories:

        data = line + "," + category.text

        filename = hashlib.sha256()

        filename.update(category.text.encode('utf-8'))

        with open('{}.html'.format(filename.hexdigest()), 'w') as f:

            f.write(data + "\n")

            print(data)        

添加代碼

filename = hashlib.sha256()

filename.update(category.text.encode('utf-8'))

with open('{}.html'.format(filename.hexdigest()), 'w') as f:

捕獲更新的頁面

如果您關(guān)心在不同時間點捕獲頁面內(nèi)容,請散列文件的全部內(nèi)容。這樣,如果頁面中的任何內(nèi)容發(fā)生更改,頁面之前的內(nèi)容都不會丟失。在這種情況下,我對 url 和文件內(nèi)容進行哈希處理,并將哈希值與 URL 哈希值和文件內(nèi)容的哈希值連接起來。這樣,當(dāng)目錄排序時,文件的所有版本都是可見的。


hashed_contents = hashlib.sha256()

hashed_contents.update(category['href'].encode('utf-8'))

with open('{}.html'.format(filename.hexdigest()), 'w') as f:


for category in categories:

        data = line + "," + category.text

        hashed_url = hashlib.sha256()

        hashed_url.update(category['href'].encode('utf-8'))

        page = requests.get(category['href'])

        hashed_content = hashlib.sha256()

        hashed_content.update(page.text.encode('utf-8')

        filename = '{}_{}.html'.format(hashed_url.hexdigest(), hashed_content.hexdigest())

        with open('{}.html'.format(filename.hexdigest()), 'w') as f:

            f.write(data + "\n")

            print(data)       


查看完整回答
反對 回復(fù) 2023-05-23
  • 4 回答
  • 0 關(guān)注
  • 223 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號