Scrapy多部分表单数据请求

时间:2017-10-12 11:20:45

标签: python web-scraping scrapy

我想从网站解析订单。通过ajax加载的订单和请求如下:

  

----------------------------- 1662842698634843362034232373               内容处理:表格数据; NAME = “查询”               {               订单(跳过:30,限制:30,过滤器:{less3bids:false,withoutMyBids:false,title:“tests”,contractual:true}){               总               过滤               命令 {               ID               输入{id name}               }               }               }           ----------------------------- 1662842698634843362034232373 -

我无法弄清楚如何发送请求。我试过了:

def after_login(self, content):
    body = '''-----------------------------1662842698634843362034232373
                Content-Disposition: form-data; name="query"
                {
                orders(skip: 30, limit: 30, filter: {less3bids: false,withoutMyBids: false,title: "tests",contractual: true}) {
                total
                filtered
                orders {
                id
                type { id name }
                }
                }
                }
            -----------------------------1662842698634843362034232373--
            '''
            return scrapy.Request(
                url="https://somesite.com/graphqlapi?",
                method='POST',
                body=body,
                headers={
                    'Content-Type': 'multipart/form-data; boundary=---------------------------1662842698634843362034232373'
                },
                callback=self.parse_orders)

但网站返回错误:

Syntax Error GraphQL request (1:1) Unexpected <EOF>\n\n1: \n   ^\n

1 个答案:

答案 0 :(得分:0)

看起来Firefox检查器返回错误的参数。当我从chrome复制params时,请求正常。