さらに解析するために、parser.feedの結果を文字列に保存しようとしています。 parser.feed
現在、戻りなしをPython3 HTML.parser "feed"が返されません。
import requests
from html.parser import HTMLParser
class MyHTMLParser(HTMLParser):
def handle_data(self, data):
return("Encountered some data : ", data.encode('utf-8'))
list_of_10K_text_files = ['https://www.sec.gov/Archives/edgar/data/200406/000020040616000071/0000200406-16-000071.txt',
'https://www.sec.gov/Archives/edgar/data/40545/000004054516000145/0000040545-16-000145.txt',
'https://www.sec.gov/Archives/edgar/data/1095130/000161577416007303/0001615774-16-007303.txt']
page = requests.get(list_of_10K_text_files[0])
parser = MyHTMLParser()
pos_Large_Acc_filer = (page.text).find('Large accelerated filer')
pos_Small_Reporting_Co = (page.text).find('Smaller reporting company')
# I would like to save the results of parser.feed to "text_for_file"
# as a string for further parsing
text_for_file = parser.feed(page.text[pos_Large_Acc_filer:(pos_Small_Reporting_Co+150)])
# Output Desired in the text_for_file variable
---------------------------------------------------------------------------
Encountered some data : b'Large accelerated filer\xc2\xa0\xc2\xa0'
Encountered some data : b'\xc3\xbe'
Encountered some data : b'\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0Accelerated filer\xc2\xa0\xc2\xa0'
Encountered some data : b'o'
Encountered some data : b'\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0Non-accelerated filer\xc2\xa0\xc2\xa0'
Encountered some data : b'o'
Encountered some data : b'\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0Smaller reporting company\xc2\xa0\xc2\xa0'
Encountered some data : b'o'
が、私は上記のように、それは私がそれを解析することを可能にする形式で、出力を返す必要があります。しかし、parser.feedはここでどれ
が私のコードではありませんが返されませんさらにテキスト。
EDIT なぜ、私が.txtファイルを解析しようとしているのか不思議です。以下は、.txtファイルのテキストの例です。明らかに、それはHTMLであり、筆頭50以上のヘッダー情報行(私は含まれていません)のほかにあります。パーサーの
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<!-- Document created using Wdesk 1 -->
<!-- Copyright 2016 Workiva -->
<title>10-K</title>
</head>
<body style="font-family:Times New Roman;font-size:10pt;">
<a name="s5971963f20334f9f9b208ef25f6cc9cd"></a>
<div style="line-height:120%;padding-top:2px;text-align:center;font-size:12pt;">
<font style="font-family:inherit;font-size:12pt;font-weight:bold;">UNITED STATES</font>
</div>
<div style="line-height:120%;text-align:center;font-size:12pt;">
<font style="font-family:inherit;font-size:12pt;font-weight:bold;">SECURITIES AND EXCHANGE COMMISSION</font>
</div>
<div style="line-height:120%;text-align:center;font-size:12pt;">
<font style="font-family:inherit;font-size:12pt;font-weight:bold;">Washington, D.C. 20549</font>
</div>
EDIT
ソースコードは、ライン158 feed
戻りself.goahead(0)
でfeed
機能が起動し、以下のリンク HTML.parser Source Code
で見つけることができます。 goahead(0)
関数は、193行目から開始します。handle_data
(ソースコードは534行目から始まります)は、goahead
によって返されますが、handle_data
が返す場合があります。これは奇妙に思えますが、私の特定の問題の原因かもしれません。
'parser.feed'がNoneを返さないように' def handle_data(self、data): 'を編集するにはどうすればいいですか? – mkultra
私はそれを理解できません:いくつかのHTML出力?実際のHTML入力を試すことができますか? –
明白に私は私の問題を説明する良い仕事が必要です。私は明日更新します。私が解析しているテキストファイルは、htmlで書かれています。したがって、HTMLパーサはこれらのテキストファイルで動作します。 SECが.txtファイルとして提供するのはなぜですか? – mkultra