Python 如何将两个元素连接在一起?

Python 如何将两个元素连接在一起?,python,html,web-scraping,scrapy,Python,Html,Web Scraping,Scrapy,我正在尝试将所有“文本”部分合并到我的scrapy输出文件中的一个字符串或一个项目中。源代码如下: <div class="sth"> <h3 class="sth">The Text</h3> <h4 class="sth2"> <span class="sth11">The Text</span> </h4> <h4 class="sth3"> <span c

我正在尝试将所有“文本”部分合并到我的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>

正文
正文
正文
正文

是否有一种将所有“文本”元素合并为一个项目或一个字符串的好方法?

考虑到您希望任何文本都是包装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]/