我想添加到这个程序中,将每个崩溃点保存到一个文本文件中,并在新行中添加一个新的崩溃点。我曾试图从过去的工作中做到这一点,但我似乎无法将其结合起来。
#Imports
from bs4 import BeautifulSoup
from urllib import urlopen
import time
#Required Fields
pageCount = 1287528
#Loop
while(pageCount>0):
time.sleep(1)
html = urlopen('https://www.csgocrash.com/game/1/%s' % (pageCount)).read()
soup = BeautifulSoup(html, "html.parser")
try:
section = soup.find('div', {"class":"row panel radius"})
crashPoint = section.find("b", text="Crashed At: ").next_sibling.strip()
except:
continue
print(crashPoint[0:-1])
pageCount+=1
有人能指出我做错了什么以及如何解决吗?
我还没有使用过你正在使用的一些确切的模块,所以除非它们做了一些奇怪的事情,否则我无法从中闪光。我能看到的问题是。。。
- 看起来你有一个无限循环,而pageCount>0和pageCount+=1,所以这可能是一个问题
- 您要打印到控制台而不是文本文件外观。Code Academy有一个关于使用I/O的很棒的教程来教您这一点
我认为,如果你修复了无限循环,只使用文本文件而不是控制台,你就没有问题了。
如果您只是以附加模式打开输出文件,那么执行此操作非常简单:
#Loop
logFile = open("logFile.txt", "a")
while(pageCount>0):
time.sleep(1)
html = urlopen('https://www.csgocrash.com/game/1/%s' % (pageCount)).read()
soup = BeautifulSoup(html, "html.parser")
try:
section = soup.find('div', {"class":"row panel radius"})
crashPoint = section.find("b", text="Crashed At: ").next_sibling.strip()
logFile.write(crashPoint+"n")
except:
continue
print(crashPoint[0:-1])
pageCount+=1
logFile.close()
以追加模式打开文件,将数据写入文件。如果您正在遍历文件循环,只需打开一次文件并继续写入新数据。
with open("test.txt", "a") as myfile:
myfile.write(crashPoint[0:-1])
以下是使用python在文件中附加数据的不同方法。
打印到文本文件
from bs4 import BeautifulSoup
from urllib import urlopen
import time
#Required Fields
pageCount = 1287528
fp = open ("logs.txt","w")
#Loop
while(pageCount>0):
time.sleep(1)
html = urlopen('https://www.csgocrash.com/game/1/%s' %(pageCount)).read()
soup = BeautifulSoup(html, "html.parser")
try:
section = soup.find('div', {"class":"row panel radius"})
crashPoint = section.find("b", text="Crashed At: ").next_sibling.strip()
except:
continue
print(crashPoint[0:-1])
#write to file here
fp.write(crashPoint[0:-1]+'n')
#i think its minus
pageCount-=1
fp.close()