一、xpath 基本语法
/html /html/head/title 绝对路径(一层层的查找) /html//title 相对于当前节点 //title/./../.. . 当前节点 ..父节点 ../following-sibling::dd[1]/a 上一级的兄弟节点 //head/meta/@http-equiv 提取标签属性值 //title/text() 提取开闭标签之间的文本内容 / 隔开的的是节点(除了尾部出现的之外)
二、节点修饰语法(使用[]修饰节点,[]跟在节点之后)
1.通过索引进行节点修饰(索引从0开始)
//body/div[3]/div/div[1]/div[position()>10]
//body/div[3]/div/div[1]/div[last()]
2.通过标签属性与属性值修饰节点
//div[@id="aa_tag_121536487"] //div[@id]
3.通过子节点的值修饰当前节点
//span[i>2000]
4.通过部分包含修饰节点
//div[contains(@id,"aa_tag_")]
5.通过内容寻找链接(一般用于下一页)
//div[text()="下一页"]/@href
6.节点的通配使用
//*[contains(text(),"下一")]
7.xpath语法的并用
path1|xpath2
三、url拼接
In [1]: import urllib In [2]: a='http://baidu.com?kw=100' In [3]: b='?abc=123' In [4]: urllib.parse.urljoin(a,b) Out[4]: 'http://baidu.com?abc=123'
四、scrapy中url拼接
response.urljoin(node.xpath('uri'))