Por favor, eche un vistazo a this spider example en la documentación de Scrapy. La explicación es:Scrapy SgmlLinkExtractor está ignorando los enlaces permitidos
Esta araña comenzaría a rastrear la página de inicio de example.com, reuniendo enlaces de categoría y enlaces de elementos, analizando este último con el método parse_item. Para cada respuesta al artículo, se extraerán algunos datos del HTML utilizando XPath, y se completará con un artículo.
He copiado exactamente la misma araña y he reemplazado "example.com" con otra url inicial.
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.selector import HtmlXPathSelector
from scrapy.item import Item
from stb.items import StbItem
class StbSpider(CrawlSpider):
domain_name = "stb"
start_urls = ['http://www.stblaw.com/bios/MAlpuche.htm']
rules = (Rule(SgmlLinkExtractor(allow=(r'/bios/.\w+\.htm',)), callback='parse', follow=True),)
def parse(self, response):
hxs = HtmlXPathSelector(response)
item = StbItem()
item['JD'] = hxs.select('//td[@class="bodycopysmall"]').re('\d\d\d\d\sJ.D.')
return item
SPIDER = StbSpider()
Pero mi araña "STB" no recoge los enlaces de "/ bios /" ya que se supone que debe hacer. Ejecuta la url inicial, raspa el item['JD']
y lo escribe en un archivo y luego se cierra.
¿Por qué se ignora SgmlLinkExtractor
? Se lee el Rule
porque detecta errores de sintaxis dentro de la línea Rule
.
¿Esto es un error? ¿Hay algo mal en mi código? No hay errores, excepto un montón de errores no controlados que veo con cada ejecución.
Sería bueno saber lo que estoy haciendo mal aquí. Gracias por cualquier pista. ¿Estoy malinterpretando lo que se supone que debe hacer SgmlLinkExtractor
?
Cuando veo "No hay errores, excepto un montón de errores no controlados que veo en cada ejecución", tengo que rascarme la cabeza. –
Lo siento, veo advertencias de destrucción. Los errores que estaba viendo se debieron a tener telnet y shell abiertos al mismo tiempo, como lo menciona Pablo Hoffman aquí http://stackoverflow.com/questions/1767553/twisted-errors-in-scrapy-spider y cuando cerré el Concha, no los veo más. ¿Alguna pista de por qué los enlaces permitidos no se eliminan? – Zeynel