我正在使用 Scrapy,并且遇到了一些使用变量会很好的地方,但我不知道如何使用。这意味着如果我有一些长字符串,最好将它存储在一个变量中long_string
,然后为它选择:hxs.select('\\div[@id=long_string]')
。我确信 Scrapy 支持这一点,但我无法弄清楚,因为你总是必须硬编码字符串是没有意义的。
更新:所以对于下面的示例文本,我想提取 div where id="footer"
:
<div id="footer">
<div id="footer-menu">
<div class="region-footer-menu">
<div id="block-menu-menu-footer-menu" class="block-menu">
<div class="content">
<ul class="menu">
<li class="first leaf"><a href="/faq" title="">FAQs</a></li>
<li class="leaf"><a href="/media" title="">Media</a></li>
<li class="leaf"><a href="/partners" title="">Partners</a></li>
<li class="last leaf active-trail"><a href="/jobs" title="" class="active-trail active">Jobs</a></li>
</ul>
</div>
</div>
<div id="block-block-52" class="block block-block">
<div class="content">
<p>SUPPORT</p>
</div>
</div>
</div>
</div>
</div>
hxs = HtmlXPathSelector(response)
我们为以下所有段进行初始化。以下代码仅选择第一个 div:
hxs.select('//div[@id=concat("foot","er")]')
此代码什么都不选择,但没有给出错误:
hxs.select('//div[@id="foot"+"er"]')
下面的两个代码段都没有选择任何内容并且没有给出错误:
long_string = "foot"
hxs.select('//div[@id=concat(long_string,"er")]')
hxs.select('//div[@id=long_string]')
我希望能够执行下面两种方法中的任何一种并返回所需的结果。