У меня есть отвратительный цикл, который сканирует веб-сайт и удаляет элементы с той страницы, которые он вводит в переменные, которые затем выводятся в определенное место в файле CSV.
for i in range (30):
page = requests.get('https://www.example.com'+ df.loc[i,'ga:pagePath'])
tree = html.fromstring(page.content.decode('utf-8'))
postalcode2 = tree.xpath('//span[@itemprop="postalCode"]/text()')
postalcode = tree.xpath('//span[@itemprop="addressRegion"]/text()')
if not postalcode2 and not postalcode:
df.loc[i,'postcode'] = 'Expired Development'
elif not postalcode2:
postalcode4 = postalcode[0]
postalcode4 = postalcode4.replace(' ','')
postalcode4 = postalcode4.replace(' ','')
df.loc[i,'postcode'] = postalcode4
elif not postalcode:
postalcode3 = postalcode2[0]
if 'Â' not in postalcode3:
postalcode3 = postalcode3.replace('\\xa0','')
postalcode3 = postalcode3.replace(' ','')
else:
postalcode3 = postalcode3.replace('\\xa0Â','')
postalcode3 = postalcode3.replace(' ','')
df.loc[i,'postcode'] = postalcode3
elif postalcode2 and postalcode:
postalcode3 = postalcode2[0]
if 'Â' not in postalcode3:
postalcode3 = postalcode3.replace('\\xa0','')
postalcode3 = postalcode3.replace(' ','')
else:
postalcode3 = postalcode3.replace('\\xa0Â','')
postalcode3 = postalcode3.replace(' ','')
df.loc[i,'postcode'] = postalcode3
Здеськак я читаю в фрейме данных (используя панд)в порядке и выводит его корректно, без пробелов в CSV.
Однако, когда на веб-странице нет «addressRegion» и только диапазон «postalCode», формат идет с символом Â.Единственное различие между двумя свойствами span состоит в том, что addressRegion - это просто обычный почтовый индекс с пробелом, например, BH12 8HJ, однако postalCode имеет & nbsp;пометьте пространство как пробел, например, «BH12 & nbsp; 8HJ».
Может ли быть причиной проблемы, когда я преобразовываю его в строку и пытаюсь удалить пробел, но я могу »Я не понимаю, почему в CSV будет создан символ Â.
Спасибо за помощь.
PS В теге Nbsp есть пробел, чтобы он не добавлялся вкак пробел в моем вопросе:)