在学习scrapy中用xpath提取网页内容时,有时要先提取出一整个行标签内容,再从行标签里寻找目标内容.出现一个错误. 错误代码: def parse(self, response): sel = scrapy.Selector(response) sel_li = sel.xpath('/html/body/div[2]/div[5]/div[1]/ul/li') for i in sel_li: print(i.xpath('//h5/a/text()').extract()[0]) 结果
xpath中没有提供对class的原生查找方法.但是 stackoverflow 看到了一个很有才的回答: This selector should work but will be more efficient if you replace it with your suited markup:这个表达式应该是可行的.不过如果你把class换成更好识别的标识执行效率会更高 //*[contains(@class, 'Test')] But since this will also match
移除标签的两种方式 可以用xpath定位 for bad in html.xpath(".//table"): bad.getparent().remove(bad) 参考:https://stackoverflow.com/questions/7981840/how-to-remove-an-element-in-lxml 直接删除相关标签 在使用xpath获取指定标签后,直接删除. etree.strip_elements(f, 'r') 参考:https://stackoverf