2017-02-14 18 views
0

私は、スクラップ、Pythonの初心者です。 scrapinghubにスパイダーコードをデプロイしようとしましたが、次のエラーが発生しました。以下はコードです。ValueError:リクエストのスキームがありません。url:h

import scrapy 
from bs4 import BeautifulSoup,SoupStrainer 
import urllib2 
from scrapy.selector import Selector 
from scrapy.http import HtmlResponse 
import re 
import pkgutil 
from pkg_resources import resource_string 
from tues1402.items import Tues1402Item 

data = pkgutil.get_data("tues1402","resources/urllist.txt") 
class SpiderTuesday (scrapy.Spider):  
    name = 'tuesday' 
    self.start_urls = [url.strip() for url in data] 
    def parse(self, response): 
     story = Tues1402Item() 
     story['url'] = response.url 
     story['title'] = response.xpath("//title/text()").extract() 
     return story 

import scrapy 
class Tues1402Item(scrapy.Item): 
    # define the fields for your item here like: 
    # name = scrapy.Field() 
    title = scrapy.Field() 
    url = scrapy.Field() 

がitems.pyコードと

from setuptools import setup, find_packages 
setup(
    name   = 'tues1402', 
    version  = '1.0', 
    packages  = find_packages(), 
    entry_points = {'scrapy': ['settings = tues1402.settings']}, 
    package_data = {'tues1402':['resources/urllist.txt']}, 
    zip_safe = False, 
) 

setup.pyコードがある私のspider.pyコードです。

以下はエラーです。

Traceback (most recent call last): File "/usr/local/lib/python2.7/site-packages/scrapy/core/engine.py", line 126, in _next_request request = next(slot.start_requests) File "/usr/local/lib/python2.7/site-packages/scrapy/spiders/init.py", line 70, in start_requests yield self.make_requests_from_url(url) File "/usr/local/lib/python2.7/site-packages/scrapy/spiders/init.py", line 73, in make_requests_from_url return Request(url, dont_filter=True) File "/usr/local/lib/python2.7/site-packages/scrapy/http/request/init.py", line 25, in init self._set_url(url) File "/usr/local/lib/python2.7/site-packages/scrapy/http/request/init.py", line 57, in _set_url raise ValueError('Missing scheme in request url: %s' % self._url) ValueError: Missing scheme in request url: h

答えて

0

あなたのエラーは、URL hが有効なURLではないことを意味し、事前にありがとうございます。 self.start_urlsを印刷して、そこにあるURLを確認してください。最初のURLはhです。

代わりに、ここでURLのリストのテキストを通して、あなたのクモの反復するように思える:

# assuming file has url in every line 
self.start_urls = [url.strip() for url in data.splitlines()] 
+0

感謝:

data = pkgutil.get_data("tues1402","resources/urllist.txt") class SpiderTuesday (scrapy.Spider): name = 'tuesday' self.start_urls = [url.strip() for url in data] 

は、あなたがそれを分割する必要がありurllist.txtファイルにいくつかのセパレータを使用してURLを保存すると仮定すると、あなたはそんなにグラニトサウルスです。 – Niveram

+0

@ Niveram問題は、あなたの問題を解決した場合は、答えの左側に答えるボタンをクリックして自由に感じる! :) – Granitosaurus

関連する問題