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")
首先,如果您想循环写入,您需要以 "append" 模式打开文件,而不是 "write",因为后者会覆盖现有内容(请参阅 docs) .但是你不应该在每次迭代中 open/close 因为这是无效的。
至于多行,你需要在每行文字后附加\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)
我目前正在开发一个代理爬虫只是为了好玩,但是我 运行 遇到了一个问题
我希望将文件的输出保存到以下格式的 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")
首先,如果您想循环写入,您需要以 "append" 模式打开文件,而不是 "write",因为后者会覆盖现有内容(请参阅 docs) .但是你不应该在每次迭代中 open/close 因为这是无效的。
至于多行,你需要在每行文字后附加\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)