У меня есть скрипт, который должен копировать все файлы изображений с веб-сайта, а затем записывать их в определенный файл в каталоге.Код выглядит следующим образом:
import urllib2
import re
from os.path import basename
from urlparse import urlsplit
url ='https://www.google.com'
response = urllib2.urlopen(url)
source = response.read
file = open("google.txt", "w")
#.seek(0) is for the search
file.seek(0)
file.write(source)
file.close()
patten = '(http)?s?:?(\/\/[^"]*\.(?:png|jpg|jpeg|gif|png|svg))'
for line in open('google.txt'):
for m in re.findall(pattern, line):
filename = basename(urlsplit(m[1])[2])
try:
img = urllib2.urlopen('https:' + m[1]).read()
file = open(filename, "w")
file.write(img)
file.close()
except:
pass
break
Проблема заключается в том, что при выполнении он выдает expected a character buffer object
в строку, содержащую file.write(source)
.
Я попытался вставить file.seek(0)
до file.write(source)
, потому что я читал в Интернете, что это обычно решает проблему, но это не работает для меня.