Почему скрап-печать \t\n\n там, где я ожидаю, что там будет текст?
Я новичок в области скрапа, но учусь. Я анализировал эту страницу. и пытаюсь соскрести адрес со страницы.
Я сделал это в оболочке Scrapy, поэтому я начну с:
scrapy shell https://www.marksandspencer.com/MSStoreDetailsView?storeId=10151&langId=-24&SAPStoreId=6952
Который работает отлично. Затем я пытаюсь разобрать адрес с:
response.xpath('//li[@class="address"]/text()').extract()
Но мой вывод следующий:
['\ n \ t \ t', '\ n \ t \ t \ n \ t \ t']
Почему я не могу видеть адрес, как он появляется на странице:
BELFAST ABBEY CENTER, 1 Олд Гленмаунт Роуд, Ньютонабби, Аббатство Ньютон, BT36 7DN
Как мне получить этот адрес? Я ценю всех, кто находит время, чтобы ответить.
1 ответ
Есть пара ошибок, как вы подходите к этой проблеме:
Когда используешь
scrapy shell
, вы должны окружить URL с""
потому что терминал может интерпретировать его как несколько процессов из-за характера&
внутри URL:scrapy shell "https://www.marksandspencer.com/MSStoreDetailsView?storeId=10151&langId=-24&SAPStoreId=6952"
Ваш xpath неверен, потому что с
/text()
вы получаете текст этого конкретного тега, и этоli
на самом деле не содержит информацию, которую вы хотите. Тег, который включает этот текст, находится на дочерних элементах этогоli
чтобы вы могли использовать:response.xpath('//li[@class="address"]//text()').extract()
или же
response.xpath('//li[@class="address"]/p/text()').extract()