首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果存在于scrapy中,则自动添加字段

如果存在于scrapy中,则自动添加字段
EN

Stack Overflow用户
提问于 2017-01-24 22:43:29
回答 1查看 30关注 0票数 0

写一个爬虫来抓取一个网站,但是被一个问题卡住了。这里有一段类似下面的代码。我还想写一个爬虫来抓取存在于<ul>标记中的所有<li>标记,以提取其中的href属性,并将其存储在一个增量变量中,如Field1Field2Field3等,其中‘href’为常量,数值随着存在的<li>标记的增加而递增

示例Html:(不要把原始的html放在很长的地方)

代码语言:javascript
运行
复制
<ul class="l-itemcassette l-space_medium">

    <li>
        <a href="#">Link</a>
    </li>

    <li>
        <a href="#">Link</a>
    </li>

    <li>
        <a href="#">Link</a>
    </li>

    <li>
        <a href="#">Link</a>
    </li>
</ul>

在使用xpath时遇到问题,所以使用css选择器。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-24 22:46:23

您可以在response.css()response.xpath()上使用enumerate()来索引匹配的href属性值:

代码语言:javascript
运行
复制
In [1]: {'Field%d' % index: link 
         for index, link in enumerate(response.css("ul.l-itemcassette.l-space_medium li a::attr('href')").extract(), start=1)}
Out[1]: 
{'Field1': u'#link1',
 'Field2': u'#link2',
 'Field3': u'#link3',
 'Field4': u'#link4'}

请注意,出于演示目的,我已经分配了不同的href值。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41831036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档