Url 具有与%0D%0A相关的双链接的碎片请求

Url 具有与%0D%0A相关的双链接的碎片请求,url,hyperlink,scrapy,double,Url,Hyperlink,Scrapy,Double,我用scrapy写了一个爬行蜘蛛,但它无法用正确的链接发出请求,它提取的链接会以某种方式将基本url与它从站点提取的整个链接连接在一起。下面是我在日志中看到的一个例子,当它发出请求时 我不知道为什么它会这样做,这是代码如果它有帮助,我需要scrapy使用cookies,因为网站使用身份验证 import scrapy from scrapy.spiders import CrawlSpider, Rule from scrapy.linkextractors import LinkExtrac

我用scrapy写了一个爬行蜘蛛,但它无法用正确的链接发出请求,它提取的链接会以某种方式将基本url与它从站点提取的整个链接连接在一起。下面是我在日志中看到的一个例子,当它发出请求时

我不知道为什么它会这样做,这是代码如果它有帮助,我需要scrapy使用cookies,因为网站使用身份验证

import scrapy
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
from scrapy.http.request import Request
from Profiles.items import Profiles
#from scrapy.linkextractors.sgml import SgmlLinkExtractor
from scrapy.contrib.linkextractors import LinkExtractor


class MyCrawler(CrawlSpider):
    name = 'XSpider'
    allowed_domains = ['www.example.com']
    start_urls = ['http://www.example.com/welcome/models/46/name/']


    rules = (
        Rule(LinkExtractor(restrict_xpaths='//div[@class="pagination"]//a'), callback='make_requests_from_url',follow=True),


    def make_requests_from_url(self, url):
        headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36'}
        return Request(url, cookies={'Iremoved cookiesfromThisPost':'ignorethispart'}, headers=headers ,dont_filter=True)


    def start_url2(self, response):
        item = Profiles()
        item['models_per_page'] = response.xpath('//div[@class="modelphoto"]/a//@href').extract()
       return item 

可能是pythons
urlparse.urljoin()
无法连接这两个URL。您应该编辑您的代码以提供您使用的真实URL。除此之外,您还可以在
规则
中添加一个
process\u request
参数,该参数将指向一个函数,该函数接受一个请求并返回一个请求,因此您可以在其中修复损坏的URL。这实际上是scrapy中的一个错误。一些类似的问题仍然存在:,可能是pythons
urlparse.urljoin()
无法连接这两个URL。您应该编辑您的代码以提供您使用的真实URL。除此之外,您还可以在
规则
中添加一个
process\u request
参数,该参数将指向一个函数,该函数接受一个请求并返回一个请求,因此您可以在其中修复损坏的URL。这实际上是scrapy中的一个错误。一些类似的问题仍然悬而未决:,