zoukankan      html  css  js  c++  java
  • 【scrapy】FormRequest <TypeError: to_bytes must receive a unicode, str or bytes object, got int>

    原因: 

    formdata的dict中,有value是int.......(有value不是byte类)

     1 class FormRequest(Request):
     2 
     3     def __init__(self, *args, **kwargs):
     4         formdata = kwargs.pop('formdata', None)
     5         if formdata and kwargs.get('method') is None:
     6             kwargs['method'] = 'POST'
     7 
     8         super(FormRequest, self).__init__(*args, **kwargs)
     9 
    10         if formdata:
    11             items = formdata.items() if isinstance(formdata, dict) else formdata
    12             querystr = _urlencode(items, self.encoding)#就这句....
    13             if self.method == 'POST':
    14                 self.headers.setdefault(b'Content-Type', b'application/x-www-form-urlencoded')
    15                 self._set_body(querystr)
    16             else:
    17                 self._set_url(self.url + ('&' if '?' in self.url else '?') + querystr)
    def _urlencode(seq, enc):
        values = [(to_bytes(k, enc), to_bytes(v, enc))
                  for k, vs in seq
                  for v in (vs if is_listlike(vs) else [vs])]
        return urlencode(values, doseq=1)
    def to_bytes(text, encoding=None, errors='strict'):
        """Return the binary representation of `text`. If `text`
        is already a bytes object, return it as-is."""
        if isinstance(text, bytes): #这里FALSE了,raise了TypeError
            return text
        if not isinstance(text, six.string_types):
            raise TypeError('to_bytes must receive a unicode, str or bytes '
                            'object, got %s' % type(text).__name__)
        if encoding is None:
            encoding = 'utf-8'
        return text.encode(encoding, errors)
  • 相关阅读:
    CentOS LiveCD LiveDVD DVD 等版本的区别
    解决蛋疼的阿里云单CPU使用率的问题。
    软件工程在北航
    Introduction of Team Member
    proxool的配置
    hibernate配置jndi
    dbcp的配置
    绘制图片
    myeclipse搭建svn插件
    svn搭建
  • 原文地址:https://www.cnblogs.com/Hed-geh0g/p/8023342.html
Copyright © 2011-2022 走看看