tutorial scraping library example python html web-scraping scrapy extract

python - scraping - Cómo extraer etiquetas exactas en scrapy



scrapy tutorial (1)

Escribí una clase para scrapy para obtener el contenido de una página así:

#!/usr/bin/python import html2text from scrapy.spider import BaseSpider from scrapy.selector import HtmlXPathSelector class StockSpider(BaseSpider): name = "stock_spider" allowed_domains = ["www.hamshahrionline.ir"] start_urls = ["http://www.hamshahrionline.ir/details/261730/Health/publichealth"] def parse(self, response): hxs = HtmlXPathSelector(response) # sample = hxs.select("WhatShouldIputHere").extract()[AndHere] converter = html2text.HTML2Text() converter.ignore_links = True print converter.handle(sample)

Mi principal problema es el estado en que lo comenté.

¿Cómo puedo establecer la ruta y extraer el parámetro para eso?

¿Puedes guiarme sobre esto y darme algunos ejemplos?

Gracias


Primero debe decidir qué datos desea obtener de la página, definir una clase de Item y un conjunto de Field . Luego, para llenar campos de elementos con datos, necesita usar expresiones xpath en el método parse() de su spider.

Aquí hay un ejemplo que recupera todos los párrafos del cuerpo (todas las noticias, supongo):

from scrapy.item import Item, Field from scrapy.spider import Spider from scrapy.selector import Selector class MyItem(Item): content = Field() class StockSpider(Spider): name = "stock_spider" allowed_domains = ["www.hamshahrionline.ir"] start_urls = ["http://www.hamshahrionline.ir/details/261730/Health/publichealth"] def parse(self, response): sel = Selector(response) paragraphs = sel.xpath("//div[@class=''newsBodyCont'']/p/text()").extract() for p in paragraphs: item = MyItem() item[''content''] = p yield item

Tenga en cuenta que estoy usando una clase de Selector ya que HtmlXPathSelector está en desuso. Además, estoy usando el método xpath() lugar de select() por el mismo motivo.

Además, tenga en cuenta que es mejor que extraiga su definición de Item en una secuencia de comandos de python separada para seguir la estructura del proyecto de Scrapy .

Espero que ayude.