我是一个初学者在刮,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
先谢谢你
您的错误意味着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”)中需要此参数吗?