当前位置: 首页 > 知识库问答 >
问题:

请求url: h中缺少方案

闻人高卓
2023-03-14

我是一个初学者在刮,python。我试图在scrapinghub中部署spider代码,但遇到了以下错误。下面是代码。

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

是我spider.py代码

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

就是这些项目。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,
)

这是设置。py代码。

以下是错误。

回溯(最近一次调用):文件“/usr/local/lib/python2.7/site packages/scrapy/core/engine.py”,第126行,在启动请求的第70行,文件“/usr/local/lib/python2.7/site packages/scrapy/spider/init.py”。从url(url)文件“/usr/local/lib/python2.7/site packages/scrapy/spider/init.py”中发出请求,第73行,从url返回请求(url,dont\u filter=True)文件“/usr/local/lib/python2.7/site packages/scrapy/http/Request/init.py”中发出请求,第25行,在init self中_设置url(url)文件“/usr/local/lib/python2.7/site packages/scrapy/http/request/init.py”,第57行,在“设置url提升值错误”(“请求url中缺少方案:%s”%self.\u url)值错误:请求url中缺少方案:h

先谢谢你

共有1个答案

江衡
2023-03-14

您的错误意味着urlh不是有效的url。你应该打印出你的self.start_urls,看看你有什么网址,你最有可能有一个字符串h作为你的第一个网址。

您的爬行器似乎在文本中而不是在URL列表中进行迭代:

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

假设您在urlist中使用一些分隔符存储URL。txt文件您应该拆分该文件:

# assuming file has url in every line
self.start_urls = [url.strip() for url in data.splitlines()]
 类似资料:
  • 当我试图从plurk API获取access_token时,我会重新执行“Bad Request 40007:Missing Request Token”

  • 我需要从发布请求中获取ID。这是我的HTTP请求和标头管理器。 查看结果侦听器输出-采样器结果和请求响应数据为: { : "status":400,:" success":false,:" message ":"缺少请求正文!"} 我尝试使用blazemeter chrome插件,对于同样的请求,他们正在使用正文数据并解析其中的整个表单数据。有人能帮我吗? 授权持有人问题截图: BeanShell

  • 问题内容: 我有一个HTTP请求,该请求传递的值将用于使用JAX-RS在Java Web服务中处理的某些代码中。Java中的POST函数正在使用。有两个可能的值要传递到请求中,分别调用一个和另一个(假设它们都是String)。该请求要求将两个可能的值 中的至少 一个视为“有效”。 当请求进入时,如果提供了if 并将其完全排除在请求之外,那么检查那里是否存在的正确方法是什么?你会检查,看看是否还是?

  • 我有一个非常简单的HTML表单页面(它是src/main/resources/public/web.HTML中Spring Boot web应用程序的一部分),用于将一个字符串从文本区发布到Spring Boot web应用程序版本1.5.2。 和SpringBoot类来处理POST请求:

  • 我得到了<code>缺少的要求osgi.wiring。包…部署包时出错,缺少的包来自库(maven依赖项),因此包在其<code>类路径中 我的理解是:当使用来自另一个<code>OSGI捆绑包,但事实并非如此,这只是一个自制的库(没有部署到OSGI容器,甚至没有捆绑包),所以我一定不太明白

  • 有来自两个不同系统的SAML身份验证请求。一个成功,另一个不断失败。 我注意到,失败的标记在14个标记中有13个缺少xmlns:ds=“http://www.w3.org/2000/09/xmldsig#”: 我想知道没有这个参数是否会使请求无效。 SAML 2.0(xmlns=“urn:oasis:names:tc:SAML:2.0:protocol”)中需要此参数吗?