exceptions ValueError unsupported format character in python scrapy

2024-09-29 23:29:04 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我在做刮痧

下面是我的代码

class examplespider(CrawlSpider):
    name = "example"
    domain_name = "www.example.com"
    start_urls = ["http://www.example.com/sch/mobile-/67939/i.html?_catref=1"]

def parse(self,response):
    hxs = HtmlXPathSelector(response)
    for i in xrange(1,10):
        yield Request(url="http://www.example.com/sch/mobile-/67939/i.html?_catref=1?_trkparms=65%253A12%257C66%253A1%257C39%253A1%257C72%253A3276&rt=nc&_catref=1&_dmpt=IN_Mobile_Phones&_trksid=p3286.c0.m14.l1513&_pgn=%d"%i,
                                 callback=self.parse_item)
def parse_item(self,response):
    print response,"Here it is................."

结果:

^{pr2}$

有谁能告诉我代码出了什么问题,为什么显示不支持的格式字符代码错误,这里是否不支持url,当我们提供一个没有格式说明符的整数时,我可以得到响应。 请告诉我上面的情况

提前谢谢。在


Tags: 代码nameselfcomhttpurlparseexample
2条回答

我想问题是你在字符串插值中把I标记为整数,但是它的字符串或者其他什么,试试检查I的类型

您的URL包含许多未转义的%符号,您正试图使用%运算符在字符串中插入一个值。Python正在寻找%字符来将您的i替换为URL。但是它看到的第一个可能是%A,这不是一个有效的格式字符。错误信息甚至会告诉你到底发生了什么和在哪里。在

可能最简单的通用解决方案是使用字符串的.format()方法,而不是%运算符:

("http://www.example.com/sch/mobile-/67939/i.html?_catref=1?"
 "_trkparms=65%253A12%257C66%253A1%257C39%253A1%257C72%253A3276&rt=nc"
 "&_catref=1&_dmpt=IN_Mobile_Phones&_trksid=p3286.c0.m14.l1513&_pgn={0}").format(i)

它使用不同的格式占位符,这些占位符与您的URL使用的%字符没有冲突。在

或者,在本例中,由于您只想将变量附加到URL,所以可以使用直接向上的连接:

^{pr2}$

相关问题 更多 >

    热门问题