繁体   English   中英

在草率的CSS选择器中,如何获得字符串''而不是子字符串[]

[英]In scrapy css selectors how do i get a strings ' ' instead of a sub-string [ ]

我不知道如何从选择器中获取字符串

我试过了

response.css('.size_list a::text').extract()

我懂了

['L', '1X', '2X', '3X', '4X', '5X']

这是代码

    <span class="size_list">
         <a href="javascript:void(0)" class="itemAttr current" title="L" data- 
         value="L">L</a>

         <a href="javascript:void(0)" class="itemAttr" title="1X" data- 
           value="1X">1X</a>    

        <a href="javascript:void(0)" class="itemAttr" title="2X" data- 
         value="2X">2X</a>    

       <a href="javascript:void(0)" class="itemAttr" title="3X" data- 
         value="3X">3X</a>    

       <a href="javascript:void(0)" class="itemAttr" title="4X" data- 
        value="4X">4X</a>    
       <a href="javascript:void(0)" class="itemAttr" title="5X" data- 
        value="5X">5X</a>   
    </span>

我想要的是“ 'L', '1X', '2X', '3X', '4X', '5X'

这不是提取代码要做的事情,一旦拥有提取的数据,就应该使用常规Python代码来做这件事:

>>> extracted_data = ['L', '1X', '2X', '3X', '4X', '5X']
>>> ', '.join("'%s'" % value for value in extracted_data)
"'L', '1X', '2X', '3X', '4X', '5X'"

不确定是否可以直接在选择器中进行操作。 另一种选择是先将其作为列表,然后将其转换为具有以下内容的字符串:

size_list = response.css('.size_list a::text').extract()
string_size_list = ', '.join(size_list)

获取元素的首次出现

response.css('.size_list a::text').extract_first()
# or
response.css('.size_list a::text').get()

这应该工作

item_list = response.css('.size_list a::text').extract()
one_string = (', ').join(item_list) # this work

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM