ValueError: может анализировать только строки Python
Я пытаюсь собрать кучу ссылок, используя xpath, которые нужно удалить со следующей страницы, однако, я продолжаю получать сообщение об ошибке, которое может анализировать только строки? Я попытался посмотреть на тип lk, и это была строка после того, как я его произнес? Что кажется неправильным?
def unicode_to_string(types):
try:
types = unicodedata.normalize("NFKD", types).encode('ascii', 'ignore')
return types
except:
return types
def getData():
req = "http://analytical360.com/access-points"
page = urllib2.urlopen(req)
tree = etree.HTML(page.read())
i = 0
for lk in tree.xpath('//a[@class="sabai-file sabai-file-image sabai-file-type-jpg "]//@href'):
print "Scraping Vendor #" + str(i)
trees = etree.HTML(urllib2.urlopen(unicode_to_string(lk)))
for ll in trees.xpath('//table[@id="archived"]//tr//td//a//@href'):
final = etree.HTML(urllib2.urlopen(unicode_to_string(ll)))
1 ответ
Решение
Вы должны передавать в строках не urllib2.orlopen.
Возможно, измените код так:
trees = etree.HTML(urllib2.urlopen(unicode_to_string(lk)).read())
for i, ll in enumerate(trees.xpath('//table[@id="archived"]//tr//td//a//@href')):
final = etree.HTML(urllib2.urlopen(unicode_to_string(ll)).read())
Кроме того, вы, кажется, не увеличивать i
,