невозможно очистить, пройдя <br>в <td>с помощью скрапа с помощью css - PullRequest
0 голосов
/ 17 декабря 2018

html код следующий:

<td class="column-3">
                                (price per 1,000 images)<br>
0-1M images                                    -
<span class="price-data " data-amount="{&quot;regional&quot;:{&quot;asia-pacific-southeast&quot;:0.5,&quot;australia-east&quot;:0.5,&quot;brazil-south&quot;:0.5,&quot;canada-central&quot;:0.5,&quot;central-india&quot;:0.5,&quot;europe-north&quot;:0.5,&quot;europe-west&quot;:0.5,&quot;united-kingdom-south&quot;:0.5,&quot;us-east&quot;:0.5,&quot;us-east-2&quot;:0.5,&quot;us-south-central&quot;:0.5,&quot;us-west-2&quot;:0.5,&quot;us-west-central&quot;:0.5}}" data-decimals="3" data-decimals-force="0" data-region-unavailable="N/A" data-has-valid-price="true">$0.50</span>                                    <br>
1M-5M images                                    -
<span class="price-data " data-amount="{&quot;regional&quot;:{&quot;asia-pacific-southeast&quot;:0.4,&quot;australia-east&quot;:0.4,&quot;brazil-south&quot;:0.4,&quot;canada-central&quot;:0.4,&quot;central-india&quot;:0.4,&quot;europe-north&quot;:0.4,&quot;europe-west&quot;:0.4,&quot;united-kingdom-south&quot;:0.4,&quot;us-east&quot;:0.4,&quot;us-east-2&quot;:0.4,&quot;us-south-central&quot;:0.4,&quot;us-west-2&quot;:0.4,&quot;us-west-central&quot;:0.4}}" data-decimals="3" data-decimals-force="0" data-region-unavailable="N/A" data-has-valid-price="true">$0.40</span>                                    <br>
5M+ images                                    -
<span class="price-data " data-amount="{&quot;regional&quot;:{&quot;asia-pacific-southeast&quot;:0.325,&quot;australia-east&quot;:0.325,&quot;brazil-south&quot;:0.325,&quot;canada-central&quot;:0.325,&quot;central-india&quot;:0.325,&quot;europe-north&quot;:0.325,&quot;europe-west&quot;:0.325,&quot;united-kingdom-south&quot;:0.325,&quot;us-east&quot;:0.325,&quot;us-east-2&quot;:0.325,&quot;us-south-central&quot;:0.325,&quot;us-west-2&quot;:0.325,&quot;us-west-central&quot;:0.325}}" data-decimals="3" data-decimals-force="0" data-region-unavailable="N/A" data-has-valid-price="true">$0.325</span>                                    <br>
                            </td>

url: https://azure.microsoft.com/en-in/pricing/details/search/

Как я могу пройти <br> и очистить данные?Я хочу разделить td теги на count(br) раз и затем очистить.Я не хочу использовать xpath.Я хочу получить результат через css.

1 Ответ

0 голосов
/ 27 декабря 2018
dumb = 'Your response, or above text'
html_dumb = Selector(text=dumb)
td_vals = [x.strip().strip('- ') for x in 
html_dumb.xpath("//td/text()").extract() if x.strip()]   #got all td values
f_val = td_vals[0] # seperate the first one. here (price per 1,000 images)
td_vals = td_vals[1:]
span_vals = [x.strip() for x in html_dumb.xpath("//span/@data-amount").extract() if x.strip()]    #got all span data, you can also get span text if you need
inner_json = {}
result = {}

for td_val, span_val in zip(td_vals, span_vals):
    d[td_val] = json.loads(span_val)    #building inner dictionary

result[f_val] = d   #append in outer one

{u'(price per 1,000 images)': {u'5M+ images': {u'regional': {u'united-kingdom-south': 0.325, u'europe-north': 0.325, u'brazil-south': 0.325, u'us-west-2': 0.325, u'us-south-central': 0.325, u'central-india': 0.325, u'us-east': 0.325, u'canada-central': 0.325, u'europe-west': 0.325, u'us-east-2': 0.325, u'us-west-central': 0.325, u'asia-pacific-southeast': 0.325, u'australia-east': 0.325}}, u'0-1M images': {u'regional': {u'united-kingdom-south': 0.5, u'europe-north': 0.5, u'brazil-south': 0.5, u'us-west-2': 0.5, u'us-south-central': 0.5, u'central-india': 0.5, u'us-east': 0.5, u'canada-central': 0.5, u'europe-west': 0.5, u'us-east-2': 0.5, u'us-west-central': 0.5, u'asia-pacific-southeast': 0.5, u'australia-east': 0.5}}, u'1M-5M images': {u'regional': {u'united-kingdom-south': 0.4, u'europe-north': 0.4, u'brazil-south': 0.4, u'us-west-2': 0.4, u'us-south-central': 0.4, u'central-india': 0.4, u'us-east': 0.4, u'canada-central': 0.4, u'europe-west': 0.4, u'us-east-2': 0.4, u'us-west-central': 0.4, u'asia-pacific-southeast': 0.4, u'australia-east': 0.4}}}}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...