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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

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

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

素胚勾勒不出你 2023-05-23 14:51:10
我有一個(gè)腳本,它從文本文件中讀取 url,執(zhí)行請(qǐng)求,然后將所有響應(yīng)保存在一個(gè)文本文件中。如何將每個(gè)響應(yīng)保存在不同的文本文件中,而不是全部保存在同一個(gè)文件中?例如,如果我標(biāo)記為 input.txt 的文本文件有 20 個(gè) url,我想將響應(yīng)保存在 20 個(gè)不同的 .txt 文件中,例如 output1.txt、output2.txt,而不是只保存一個(gè) .txt 文件。因此對(duì)于每個(gè)請(qǐng)求,響應(yīng)都保存在一個(gè)新的 .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貢獻(xiàn)1834條經(jīng)驗(yàn) 獲得超8個(gè)贊

這是實(shí)現(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)  


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

TA貢獻(xiàn)1898條經(jīng)驗(yàn) 獲得超8個(gè)贊

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



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

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超1個(gè)贊

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

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


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

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超7個(gè)贊

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


另一種方法(未顯示)是在數(shù)據(jù)本身中找到一些唯一值,并將其用作文件名而不對(duì)其進(jìn)行哈希處理。然而,這可能會(huì)導(dǎo)致比它解決的問題更多的問題,因?yàn)?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:

捕獲更新的頁(yè)面

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


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)       


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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