我正在尝试在名为" skype_c2c_container"的范围之后删除文本。或" skype_c2c_container notranslate" (实际上是在网站上发布的电话号码)。
例如在本网站:http://adcamfabrications.co.uk/ 或在这一个:http://aandbairsystems.co.uk/
我知道如何提取网站上的所有文字,然后可能会使用电话号码的模式识别,但我相信有一种更简单的方法。我通过元名或div id或div名称提取文本,但无法设法如何对包含特定单词的跨度名称进行相同的操作(例如" skype")。
我试过的其中一个代码的示例:
item["phone_number"] =response.xpath('//span[contains(@class, "Skype")] | //span[contains(@class, "skype")]').extract()
或:
item["phone_number"] =response.xpath("//span[(@skype_c2c_container)]").extract()
我想要提取的例子:
<span class="skype_c2c_text_span">+44 (0) 1234 1234</span>
我想回复文字: &#34; +44(0)1234 1234&#34;
答案 0 :(得分:2)
找到带有Tel
文字的元素,然后获取以下文字兄弟:
$ scrapy shell http://adcamfabrications.co.uk/
In [1]: response.xpath("//span[. = 'Tel']/following-sibling::text()").extract()[0].strip()
Out[1]: u'+44 (0) 1889 571690'
对于第二个网站:
$ scrapy shell http://aandbairsystems.co.uk/
In [1]: response.xpath("//td[@class='phonenumber']/text()").re(r"24 Hour cover Tel : (\d+ \d+)")[0]
Out[1]: u'01978 661999'