所以,作为Thenewboston的一项任务,我试图从他的网站上获取一段代码并将其写入文件。代码获取部分工作正常,但写作部分不起作用:
import requests
from bs4 import BeautifulSoup
def crawler(url):
source = requests.get(url)
source_text = source.text
soup_obj = BeautifulSoup(source_text, "html.parser")
for code in soup_obj.find('code'):
codes = str(code)
final_code = codes.replace('<br/>', '').replace('Â', '')
print(final_code)
fx = open('crawler_code.txt', 'w')
fx.write(final_code)
fx.close()
crawler('https://thenewboston.com/forum/topic.php?id=1610')
答案 0 :(得分:3)
你在循环中覆盖了文件
在循环写入之前打开要写入的文件
with open('crawler_code.txt', 'w') as fx:
for code in soup_obj.find('code'):
codes = str(code)
final_code = codes.replace('<br/>', '').replace('Â', '')
print(final_code)
fx.write(final_code)
答案 1 :(得分:0)
你没有真正提到问题是什么,但我认为当你为每一行打开文件时(因此用'w'
模式删除内容),你只有一行写在文件结尾。这是你的问题吗?
如果是这样,请尝试在循环之前,在爬网方法的开头打开文件。