Url 具有与%0D%0A相关的双链接的碎片请求
我用scrapy写了一个爬行蜘蛛,但它无法用正确的链接发出请求,它提取的链接会以某种方式将基本url与它从站点提取的整个链接连接在一起。下面是我在日志中看到的一个例子,当它发出请求时 我不知道为什么它会这样做,这是代码如果它有帮助,我需要scrapy使用cookies,因为网站使用身份验证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
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中的一个错误。一些类似的问题仍然存在:,可能是pythonsurlparse.urljoin()
无法连接这两个URL。您应该编辑您的代码以提供您使用的真实URL。除此之外,您还可以在规则
中添加一个process\u request
参数,该参数将指向一个函数,该函数接受一个请求并返回一个请求,因此您可以在其中修复损坏的URL。这实际上是scrapy中的一个错误。一些类似的问题仍然悬而未决:,