2016-11-11 10 views
0

これは私の最初のsession.postの使い方です。私はアナログモバイルブラウザでウェブサイトをクロールしています。 enter image description hererequests.session post error 'dict'オブジェクトに 'read'属性がありません

コード:

http://m.ctrip.com/webapp/hotel/hoteldetail/dianping/419302.html?roomtype=&opr=&fr=detail&daylater=0&days=1

この

は、ヘッダーです

import requests 
from bs4 import BeautifulSoup 
import json 

session=requests.Session() 
headers={ 
'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.76 Mobile Safari/537.36'} 

data={ 
    "flag":1,"id":"419302","htype":1,"sort":{"idx":4,"size":10,"sort":2,"ord":1}, 
    "search":{"kword":"","gtype":4,"opr":0,"ctrl":14,"filters":[]},"alliance":{"aid":"4897","sid":"130026","ouid":"","ishybrid":0}, 
    "Key":"b2d4a14cd19fa0e656d35f065bdcdd16", 
    "head":{"cid":"09031140210396054230","ctok":"","cver":"1.0","lang":"01","sid":"8888","syscode":"09","auth":None,"extension": 
     [{"name":"pageid","value":"228032"},{"name":"webp","value":1},{"name":"referrer","value":"http://www.ctrip.com/"},{"name":"protocal","value":"http"}]}, 
    "contentType":"json"} 
url='http://m.ctrip.com/restapi/soa2/10soup.text935/hotel/booking/commentgroupsearch?_fxpcqlniredt=09031140210396054230' 
soup=session.post(url,headers=headers,files=data) 
print soup 

エラー:あなたがあなたのdata辞書を変換したい

'dict' object has no attribute 'read' 
+1

スクリーンショットを投稿せず、代わりにコードとして投稿してください。 –

答えて

1

文字列、そしてsession.post()data=パラメータ使用してそれを送信します。

soup = session.post(url, headers=headers, data=json.dumps(data)) 

それとも、あなたはrequestsバージョン2.4.2以降を使用している場合、あなたはjson=パラメータを使用して直接あなたの辞書を渡すことができた:

soup = session.post(url, headers=headers, json=data) 

リクエストのバージョンをrequests.__version__で確認してください。

関連する問題