Получить данные из тега скрипта с помощью Scrapy Xpath и использовать его как CSV - PullRequest
0 голосов
/ 25 августа 2018

Я пытался извлечь данные из тега скрипта с помощью Scrapy (xpath). Моя основная проблема заключается в определении правильных тегов div и script. Я новичок в использовании xpath и буду благодарен за любую помощь!

<script>    
var COUNTRY_SHOP_STATUS = "buy";
var COUNTRY_SHOP_URL = "";
try {
digitalData.page.pathIndicator.depth_2 = "mobile";
digitalData.page.pathIndicator.depth_3 = "mobile";
digitalData.page.pathIndicator.depth_4 = "smartphones";
digitalData.page.pathIndicator.depth_5 = "galaxy-s8";    
digitalData.product.pvi_type_name = "Mobile";
digitalData.product.pvi_subtype_name = "Smartphone";
digitalData.product.model_name = "SM-G950F";
digitalData.product.category = digitalData.page.pathIndicator.depth_3;
} catch(e) {}
</script>

Я бы, наконец, хотел бы заполнить свой CSV-файл данными model.name и глубиной 3, 4 и 5. Я пробовал другие решения из вопросов, подобных этому, но они, похоже, не работают ...

1 Ответ

0 голосов
/ 25 августа 2018

Вы можете использовать regex для извлечения необходимых значений:

import re

source = response.xpath("//script[contains(., 'COUNTRY_SHOP_STATUS')]/text()").extract()[0]

def get_values(parameter, script):
    return re.findall('%s = "(.*)"' % parameter, script)[0]

print(get_values("pathIndicator.depth_5", source))
print(get_values("pvi_subtype_name", source))
print(get_values("model_name", source))
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...