Я использую scrapy, чтобы сканировать некоторую информацию, но я потрясен обработкой данных.В цикле for
первым шагом является поиск корневого xpath с именем selectors
, а затем цикл.Мой разум говорит, что если первый селектор, первый селектор ul
, то я могу сканировать все данные первого селектора!Вместо этого scrapy возвращает массив всех элементов.Я использую переменную селектора как «ЭТО»
import Scrapy
class SecccionAmarillaSpider( scrapy.spider ):
name="seccion_amarilla"
start_urls = ['https://www.seccionamarilla.com.mx/resultados/hospitales/1']
data = {}
def parse( self, result ):
selectors = result.xpath('//ul[@class="list"]/li')
for selector in selectors:
name = selector.xpath('//span[itemprop="name"]/text()').extract()
phone = selector.xpath('//span[itemprop="telephone"]/text()').extract()
#These data is stored in MySQL
Например, в первом цикле я ожидаю
name = 'Z'
phone = '( 81)8333 4662'
sql = "INSERT INTO TABLE VALUES('"+name+"','"+phone+"')"
Вместо этого я получилв первом цикле
name = ['Z','Z-GAS']
phone = ['( 81)8333 4662', '(33)3668 3800']
Все циклы имеют одинаковые данные, не относится к селектору тока?
ПОЧЕМУ?
Не могуустановить связь между массивами, потому что иногда селектор не имеет имени и / или телефона, а Scrapy не возвращает None, или NULL, или пусто.
Как я могу решить эту проблему?