2017-01-06 6 views
0
enter image description here

はコードです。 私はそれを実行すると、 "TypeError:バイト様オブジェクトは必須であり、 'dict'ではなく、多くのソリューションを試してみました。 誰かが私を助けることができますか? thx!TypeError例外:バイトのようなオブジェクトが必要とされる、ない「辞書」はここ

+0

エラーメッセージ全体で質問を編集してください。エラーの原因となる行に関する情報が含まれています。 –

+0

また、あなたのプログラムの望ましい結果を記述してください。 –

+0

ファイル "E:\重要な文件\ 1140556027 \ FileRecv \ python爬圖片\腾讯新闻\取讯新新闻.py"、行16、 f.write(data) TypeError:バイト様オブジェクト必須、ない 'dict' [終了コード1で1.2秒で終了] – user7382247

答えて

0

f.write(データ)

これは問題の原因です。 バイトのようなオブジェクトではなく、辞書を渡しています。たとえば は、私は次のようにコードを変更するとき:

#coding:utf-8 
import requests 
from bs4 import BeautifulSoup 

url = 'http://news.qq.com/' 
wbdata = requests.get(url).text 
soup = BeautifulSoup(wbdata,'lxml') 
news_title = soup.select("div.text > em.f14 > a.linkto") 

for n in news_title: 
    title = n.get_text() 
    link = n.get("href") 
    data = {"k":title,"a":link} 
    print(data) 
    f = open('news.txt','wb') 
    data = b'123' 
    f.write(data) 
    f.close() 

...私は、次の取得:私は仮定

{'k': '辽宁舰将绕台一周“武吓”蔡英文?外交部回应', 'a': 'http://news.qq.com/a/20170104/031454.htm'} ... 

はあなたが望むものです。

代わりに行を変更: F =オープン( 'news.txt'、 'W')

、あなたが書くことができ、そのように F =オープン( 'news.txt'、 'WBを')バイトのようなオブジェクトではなく、strの中にあります。 いずれにしても、dictを渡すべきではありません。

+0

"data = b'123" – user7382247

+0

そのバイト文字列です。 f.write()はバイトのようなオブジェクトを必要とします。 私はちょうどそのエラーであなたのコードが停止するのを防ぐためにそこに入れます。 – chumbaloo

+0

私は自分の道を使うと、結果をnews.txtに書き込むことができません。そのファイルには、「123」と表示されます。それはなぜですか? – user7382247

-1

タイトルとリンクを書き込む前にファイルを開いて、ファイルを閉じて終了してください。

f = open('news.txt','wb') 
for n in news_titles: 
    title = n.get_text() 
    link = n.get("href") 
    data= { 
     '标题':title, 
     '链接':link 
    } 
    f.write(data['标题']) 
    f.write(':') 
    f.write(data['链接']) 
    f.write('\r\n') 
f.close() 
関連する問題