我试图保存链接到照片的主题在一个互联网论坛在一个txt文件。我尝试了很多方法,但是一个页面的链接保存在一个txt文件中,当循环到主题的下一页时,以前的链接被删除,新的链接被替换!我想把所有的链接都放在一起。
这是我的代码:
from bs4 import BeautifulSoup
import requests
def list_image_links(url):
response = requests.get(url)
soup = BeautifulSoup(response.content, "html.parser")
# Separation of download links
image_links = []
for link in soup.find_all('a'):
href = link.get('href')
if href is not None and 'attach' in href and href.endswith('image')==False:
image_links.append(href)
# Writing links in a txt file
with open('my_file.txt', 'w') as my_file:
my_file.write('image links:' + '\n')
for branch in image_links:
my_file.write(branch + '\n')
print('File created')
# Browse through different pages of the topic
i = 0
while i <= 5175:
list_image_links(f'https://forum.ubuntu.ir/index.php?topic=211.{i}')
i = i+15
从注解中可以清楚地看到每个部分的作用。
提前感谢您的帮助。
2条答案
按热度按时间hiz5n14c1#
您需要追加到文件。这可以通过使用
'a'
而不是'w'
作为open()
的参数来实现。当使用
'w'
时,如果文件不存在,则会创建一个文件,并且总是首先截断该文件,这意味着它将覆盖其内容。另一方面,对于'a'
,如果文件还不存在,也会创建文件,但如果文件已经存在,它不会截断,而是追加到文件的末尾,这意味着内容不会被覆盖。参见Python文档。
比如这条线
将需要更改为:
dohp0rv52#
你打开的文件带有'w',即“打开一个文件进行写入。如果文件不存在,则创建新文件;如果文件存在,则截断该文件
用'a'打开它,“打开以追加到文件末尾而不截断它。如果文件不存在,则创建新文件。”
参见:https://www.programiz.com/python-programming/methods/built-in/open