如何获得与scrapy匹配的行号

时间:2016-09-08 12:12:40

标签: python html web-scraping scrapy scrapy-shell

使用以下示例:

selectors-sample1-html

其中<html> <head> <base href='http://example.com/' /> <title>Example website</title> </head> <body> <div id='images'> <a href='image1.html'>Name: My image 1 <br /><img src='image1_thumb.jpg' /></a> <a href='image2.html'>Name: My image 2 <br /><img src='image2_thumb.jpg' /></a> <a href='image3.html'>Name: My image 3 <br /><img src='image3_thumb.jpg' /></a> <a href='image4.html'>Name: My image 4 <br /><img src='image4_thumb.jpg' /></a> <a href='image5.html'>Name: My image 5 <br /><img src='image5_thumb.jpg' /></a> </div> </body> </html> 是:

$ response.selector.xpath('//title/text()').some_magic_to_get_line_number
$ # should output 4

是否可以使用Scrapy 1.1.2获取匹配的行号?例如,像:

protected void Page_Load(object sender, EventArgs e)
{
    string origin = WebOperationContext.Current.IncomingRequest.Headers.Get("Host");
    if (origin.IndexOf("blabla.com" != -1) { 
    Response.AppendHeader("Access-Control-Allow-Origin", "*");
    }

}

谢谢!

1 个答案:

答案 0 :(得分:3)

我不知道如何获取文本节点的源代码行,但对于元素节点,您可以入侵选择器的基础lxml对象(使用.root),并访问{{ 1}}属性:

.sourceline