pyspider中内容选择器常用方法汇总

pyspider 的内容选择器默认已经实例化一个pyquery对象,可以直接使用pyquery的api来获取自己需要的内容。

如果你英文基础好可以直接查看pyquery的官方文档。https://pythonhosted.org/pyquery/

在pyspider中常用案例:

1.在pyquery中使用response.doc就可以直接实例化一个pyquery对象,就可以直接在里面使用pyquery方法了,

2.html()和text() ——获取相应的HTML块或文本块,

例:html:"hello"
response.doc('head').html()#返回hello
response.doc('head').text()#返回hello

3.根据HTML标签来获取元素,

例:html:'

test 1

test 2

'

response.doc('p')#返回[

,

]

print response.doc('p')#返回

test 1

test 2

print response.doc('p').html()#返回test 1

注意:当获取到的元素不只一个时,html()、text()方法只返回首个元素的相应内容块

4.eq(index) ——根据给定的索引号得到指定元素
接上例,若想得到第二个p标签内的内容,则可以:
print response.doc('p').eq(1).html() #返回test 2

5.filter() ——根据类名、id名得到指定元素,

例:html:"

test 1

test 2

"
response.doc('p').filter('#1') #返回[]
response.doc('p').filter('.2') #返回[]

6.find() ——查找嵌套元素,

例:html:"

test 1

test 2

"
response.doc('div').find('p')#返回[, ]
response.doc('div').find('p').eq(0)#返回[]

7.直接根据类名、id名获取元素,

例:html:"

test 1

test 2

"
response.doc('#1').html()#返回test 1
response.doc('.2').html()#返回test 2

8.获取属性值,

例:html:"

hello

"
response.doc('a').attr('href')#返回http://hello.com
response.doc('p').attr('id')#返回my_id

9.获取内容的一部分可以用分割字符串法:

例:html:"

姓名 电话

"

response.doc('#my_tel').text().split(' ')[0]用来取“姓名” response.doc('#my_tel').text().split(' ')[0]用来取“电话”

你可能感兴趣的:(pyspider中内容选择器常用方法汇总)