转载-xpath举例

1.例子 item['price'] = response.xpath('//span[@class="p-price"]/span[2]/text()').extract_first() 1.//开头表示如果我们不想定义它的父元素,就用//表示 2.匹配具体的属性值,这里是class=p-price的 3.xpath一级级用/来 4.[2] 表示第二个元素,xpath中第一个是1,不是0 5.获取标签内的文字用text() 2.例子2 item['color'] = response.xpath('//div[@id="choose-attr-1"]/div[@class="dd"]/div[contains(@class, \'item\')]/@data-value').extract() 1.如果有2个class,你只指定了一个class是无法匹配的,要用到contains进行匹配 2.属性用@xx, 比如图片的data-value,用@data-value 3.例子3 items = response.xpath('//div[@id="plist"]/ul/li[@class="gl-item"]') for product in items: item = JdsplashItem() item['price'] = product.xpath('.//strong[@class="J_price"]/i/text()').extract_first() # item['price'] = product.css('.J_price i::text').extract_first() item['img_url'] = product.css('.p-img img::attr("src")').extract_first() yield item 1. 如果div和li之间还有ul,也要写上,不能之间用//div[@id="plist"]/li[@class="gl-item"]来匹配,xpath是一层一层来解析的 2. 循环的时候,如果是从父元素开始匹配,要用.//, 不能用//,//是全局的 http://www.codeblogbt.com/archives/61894 ———————————————— 版权声明:本文为CSDN博主「瓦力冫」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/fox64194167/article/details/80470702
上一篇:2021-10-09


下一篇:PostgreSQL常用函数介绍