Scrapy python错误 - 请求URL中缺少方案

时间:2015-04-26 10:42:40

标签: python web-crawler scrapy scrapy-spider

我正在尝试从受密码保护的FTP服务器中提取文件。这是我正在使用的代码:

if(preg_match("/['\"\(\)]/", $password)) {
    echo "illegal character found..";
}

这是我得到的追溯错误:

import scrapy
from scrapy.contrib.spiders import XMLFeedSpider
from scrapy.http import Request
from crawler.items import CrawlerItem

class SiteSpider(XMLFeedSpider):
    name = 'site'
    allowed_domains = ['ftp.site.co.uk']
    itertag = 'item'

    def start_requests(self):
        yield Request('ftp.site.co.uk/feed.xml',
            meta={'ftp_user': 'test', 'ftp_password': 'test'})

    def parse_node(self, response, selector):
        item = CrawlerItem()
        item['title'] = (selector.xpath('//title/text()').extract() or [''])[0]      
        return item

1 个答案:

答案 0 :(得分:2)

您需要为网址添加方案:

ftp://ftp.site.co.uk

FTP URL语法定义为:

ftp://[<user>[:<password>]@]<host>[:<port>]/<url-path>

基本上,你这样做:

yield Request('ftp://ftp.site.co.uk/feed.xml', ...)

在维基百科上阅读有关模式的更多信息:http://en.wikipedia.org/wiki/URI_scheme