目的
とあるサイトのhtmlソースをファイルオブジェクトにしてpost送信したい。
試したこと
このコードを実行するとtf.write()のところでTypeErrorになります。
TypeError: a bytes-like object is required, not 'str'
python
1from selenium import webdriver 2import requests 3import tempfile 4 5driver = webdriver.PhantomJS() 6driver.get('http://www.google.co.jp') 7tf = tempfile.TemporaryFile() 8tf.write(driver.page_source)
tempfileを使わずにopen('w').write()でファイルを作ってから
open('r')でファイルオプジェクトを作成したら上手くいきました。
python
1open('source.html', 'w').write(driver.page_soource) 2file = { 3 "file": open('source.html', 'r') 4} 5requests.post('http://xxx.xxx', files=file)
しかしこれではスマートではないので、できればtempfileでやり取りが希望です。
tempfileに入れるにはbyteにしないといけないようですがやり方がよくわかりません。
どなたか解決方法をよろしくおねがいします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/03 12:40
2016/10/03 13:06 編集