我正在开发一个 webscraper in Python ,它从xml文件中获取名称和downloadlink。首先,它连接了date,hof和az的名称。然后它应该下载ziplink(www.file.io/xyzfile.zip)后面的文件,并在同一目录下的连接名称下安全。
除了它不会取我的连锁名称。因此,一般性问题:我需要提供哪些确切信息作为函数的参数?使用type()我确保我提供了一个字符串,但它不会接受它。
import requests
from bs4 import BeautifulSoup
xml = requests.get('https://www.rechtsprechung-im-internet.de/rii-toc.xml')
soup = BeautifulSoup(xml.text, 'xml')
for item in soup.find_all('item'):
ziplink=str(item.link.text)
datum=str(item.find('entsch-datum').text)
az=str(item.aktenzeichen.text)
hof=str(item.gericht.text)
name=datum+'-'+hof+'-'+az
print(type(name))
r=requests.get(ziplink, allow_redirects=True)
with open('%s.zip' % name,'wb') as f:
f.write(r.content)
print(name)
但遗憾的是我收到以下错误:
Traceback (most recent call last):
File "simple_script.py", line 26, in <module>
with open('%s.zip' % name,'wb') as f:
FileNotFoundError: [Errno 2] No such file or directory: '20100114-BGH 9. Zivilsenat-IX ZB 72/08.zip'
使用print(type())我确保提供一个字符串作为名称参数。因为当我使用name = 'test.zip'
测试代码时,它运行正常。但理想情况下,我想动态命名文件。
这是我在Stackoverflow上的第一篇文章,我很想得到一些反馈。非常感谢!
干杯,贾斯珀
答案 0 :(得分:0)
您是否尝试过使用open函数中的“wb +”权限?
with open('%s.zip' % name,'wb+') as f:
f.write(r.content)
+表示如果找不到它,它应该创建文件。