首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文本替换{}在scrapinghub上不起作用

文本替换{}在scrapinghub上不起作用
EN

Stack Overflow用户
提问于 2017-10-23 19:58:56
回答 1查看 45关注 0票数 0

我创建了一个{}格式的url来动态更改url。它在我的电脑上运行得很好。但是一旦我从scrapinghub上传并运行它,许多替换中的一个(状态)不起作用(其他的都很好),它返回%7B%7D&在url中,它是用大括号编码的。这一切为什么要发生?引用State变量时会遗漏什么?

这是我代码中的url:

代码语言:javascript
复制
def __init__(self):

    self.state = 'AL'
    self.zip = '35204'
    self.tax_rate = 0
    self.years = [2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017] 

def parse_m(self, response):
    r = json.loads(response.text)
    models = r['models']
    year = response.meta['year']
    make = response.meta['make']
    for model in models:
        for milage in [40000,50000,60000,70000,80000,90000,100000]:
            url = '****/vehicles/?year={}&make={}&model={}&state={}&mileage={}&zip={}'.format(year,make, model, self.state, milage, self.zip)

这是我在scrapinghub的日志中看到的url:

代码语言:javascript
复制
***/vehicles/?year=2010&make=LOTUS&model=EXIGE%20S&state=%7B%7D&mileage=100000&zip=35204
EN

回答 1

Stack Overflow用户

发布于 2017-10-24 05:09:31

这不是scrapinghub的问题。它只能是你的代码。如果我在下面这样做

代码语言:javascript
复制
>>> "state={}".format({})
'state={}'

这最终会是

代码语言:javascript
复制
state=%7B%7D

我想补充一句

代码语言:javascript
复制
assert type(self.state) is str

添加到我的代码中,以确保这种情况不会发生,如果发生了这种情况,您将获得一个AssertionError

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46888809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档