【问题标题】:How to join two elements together in scrapy?如何在scrapy中将两个元素连接在一起?
【发布时间】:2017-07-18 19:27:48
【问题描述】:

我正在尝试将所有“文本”部分加入到我的 scrapy 输出文件中的一个字符串或一个项目中。源码如下:

<div class="sth">
  <h3 class="sth">The Text</h3>
  <h4 class="sth2">
    <span class="sth11">The Text</span>
  </h4>
  <h4 class="sth3">
    <span class="sth11">The Text</span>
    <span>The Text</span>
  </h4>
</div>

有没有一种好方法可以将所有“文本”元素全部连接到一个项目或一个字符串中?

【问题讨论】:

    标签: python html web-scraping scrapy


    【解决方案1】:

    考虑到您想要任何作为包装 div 子级的文本,您希望将它们与一个新行连接起来,并且您将在一个 scrapy 解析方法中运行它,您可以:

    "\n".join(response.xpath("//div[@class='sth']/descendant::*/text()").extract())
    

    【讨论】:

    • 感谢您的帮助。如果页面源中有多个相同类型的类,例如 [class= "sth"]。如何找到我要抓取的特定内容。
    • 这取决于实际情况,但是例如,如果您要抓取的具有类sth的div是页面的第二个,您可以这样做 //div[@class='sth' ][2]/... 或者使用其他一些属性来更好地过滤你的 xpath。
    • 如果在同一个页面怎么办?
    • 我的意思是在同一个页面中,但该页面中的第二个 div 与该类
    • 代码加入所有字段,即使我使用 //div[@class='sth'][2]/
    猜你喜欢
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 2020-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多