繁体   English   中英

Python-写txt文件的问题

[英]Python- Issue writing txt file

我目前正在研究代理刮板,只是出于娱乐目的,但是遇到了一个问题

我希望将文件的输出保存到以下格式的txt文件中

185.98.232.22:8080
144.217.161.149:8080
103.106.57.174:8080
49.156.47.61:8080
179.109.144.16:44222

目前,当我尝试编写一个txt文件时,我只会得到第一个代理服务器,而没有其他端口,因此我得到了

185.98.232.22:8080

以下是我的代码

from bs4 import BeautifulSoup
import requests

proxyDomain = "https://free-proxy-list.net/"

r = requests.get(proxyDomain)

soup = BeautifulSoup(r.content,"html.parser")

table = soup.find("table",{"id" : "proxylisttable"})

for row in table.find_all("tr"):
    colums = row.find_all("td")
    try:
        print ("%s:%s" % (colums[0].get_text(), colums[1].get_text()))
        Scrapped ="%s:%s" % (colums[0].get_text(), colums[1].get_text())
        file = open("newprox.txt","w")
        file.write(Scrapped)
        file.close()
    except:
        pass

更新您的代码以匹配以下内容:

    file = open("newprox.txt","a")
    file.write(Scrapped + "\n")

首先,如果要循环和写入,则需要以“追加”模式而不是“写入”模式打开文件,因为后者会覆盖现有内容(请参阅docs )。 但是您不应该在每次迭代中打开/关闭,因为这样无效。

对于多行,您需要在每行写入的文本后附加\\n

所以你想要这个:

with open("newprox.txt","w") as file:
    for row in table.find_all("tr"):
        colums = row.find_all("td")
        try:
            Scrapped = "%s:%s" % (colums[0].get_text(), colums[1].get_text())
            print(Scrapped)
            file.write(Scrapped + "\n")
        except:
            pass

或使您的try块看起来像这样(实际上是相同的结果):

        Scrapped = "%s:%s\n" % (colums[0].get_text(), colums[1].get_text())
        print(Scrapped, end="")
        file.write(Scrapped)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM