Scrapy - Objetos da lista de seleção
Exemplos de seletor em resposta HTML
A seguir estão alguns dos exemplos em HTMLResponse e teremos o objeto HTMLResponse, que é instanciado com o seletor, mostrado a seguir -
res = Selector(html_response)
Você pode selecionar o h2 elementos do corpo da resposta HTML, que retorna o objeto SelectorList como -
>>res.xpath("//h2")
Você pode selecionar o h2 elementos do corpo de resposta HTML, que retorna a lista de strings Unicode como -
>>res.xpath("//h2").extract()
Ele retorna os elementos h2.
e
>>res.xpath("//h2/text()").extract()
Ele retorna o texto definido na tag h2 e não inclui elementos da tag h2.
Você pode percorrer as tags p e exibir o atributo de classe como -
for ele in res.xpath("//p"):
print ele.xpath("@class").extract()
Exemplos de seletor em resposta XML
A seguir estão alguns dos exemplos em XMLResponse e teremos o objeto XMLResponse, que é instanciado com o seletor, mostrado a seguir -
res = Selector(xml_response)
Você pode selecionar os elementos de descrição do corpo da resposta XML, que retorna o objeto SelectorList como -
>>res.xpath("//description")
Você pode obter o valor do preço do feed XML do Google Base registrando um namespace como -
>>res.register_namespace("g", "http://base.google.com/ns/1.0")
>>res.xpath("//g:price").extract()
Removendo Namespaces
Ao criar os projetos Scrapy, você pode remover os namespaces usando o método Selector.remove_namespaces () e usar os nomes dos elementos para trabalhar apropriadamente com XPaths.
Existem duas razões para não chamar o procedimento de remoção de namespace sempre no projeto -
Você pode remover o namespace que requer a repetição do documento e a modificação de todos os elementos que levam a uma operação cara para rastrear documentos pelo Scrapy.
Em alguns casos, você precisa usar namespaces e eles podem entrar em conflito com alguns nomes de elementos e namespaces. Esse tipo de caso ocorre com muita frequência.