Я пытаюсь создать простой сканер обхода, но response.url, кажется, сломан.Scrapy crawl spider возвращает сломанные URL-адреса
Кода я в настоящее время работаю в:
# -*- coding: utf-8 -*-
import scrapy
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors import LinkExtractor
from teatrorecur.items import TeatrorecurItem
class Teatrorecurspider(CrawlSpider):
name = "teatrorecurspider"
allowed_domains = ["cartelera.com.uy"]
start_urls = (
'http://www.cartelera.com.uy/apeliculafunciones.aspx?,,PELICULAS,OBRA,0,26',
)
rules = (
Rule(LinkExtractor(allow=('CINE&OBRA&-1&29',)), callback='parse_item', follow=False),
#Rule(LinkExtractor(restrict_xpaths='//a[@href="CINE%2COBRA%2C-1%2C29"]'), follow=False, callback='parse_item'),
#Rule(LinkExtractor(allow=('CINE&OBRA&-1&29$',)), callback='parse_item', follow=False),
)
def parse_item(self, response):
item = TeatrorecurItem()
item['url']=response.url
yield item
образец URL я получаю от этого кода
<200 http://www.cartelera.com.uy/apeliculafunciones.aspx?-1=&12415=&29=&CINE=&OBRA=>
но соответствующий элемент на странице имеет следующее значение HREF
<a href="http://www.cartelera.com.uy/apeliculafunciones.aspx?12415&&CINE&OBRA&-1&29">
как вы можете видеть, строка, следующая за .aspx? испорчен, я не знаю, что не так.
Спасибо! это отлично работало –