Я пытаюсь создать Python Crawler с помощью BeautifulSoup, но получаю сообщение об ошибке, которое я пытаюсь записать в файл нестроковый или другой тип символьного буфера. Изучив вывод программы, я обнаружил, что мой список содержит много элементов, которые являются None. Помимо наличия Нет, у меня также есть много изображений и вещей, которые не являются ссылками, но являются ссылками на изображение внутри моего списка. Как добавить URL-адреса в список?Python - Проблемы с созданием списка URL-адресов с помощью BeautifulSoup
import urllib
from BeautifulSoup import *
try:
with open('url_file', 'r') as f:
url_list = [line.rstrip('\n') for line in f]
f.close()
with open('old_file', 'r') as x:
old_list = [line.rstrip('\n') for line in f]
f.close()
except:
url_list = list()
old_list = list()
#for Testing
url_list.append("http://www.dinamalar.com/")
count = 0
for item in url_list:
try:
count = count + 1
if count > 5:
break
html = urllib.urlopen(item).read()
soup = BeautifulSoup(html)
tags = soup('a')
for tag in tags:
if tag in old_list:
continue
else:
url_list.append(tag.get('href', None))
old_list.append(item)
#for testing
print url_list
except:
continue
with open('url_file', 'w') as f:
for s in url_list:
f.write(s)
f.write('\n')
with open('old_file', 'w') as f:
for s in old_list:
f.write(s)
Вы пытаетесь отфильтровать все, что не является строкой? –
Нет, я пытаюсь отфильтровать все, что не является настоящим URL. –