htmlページを解析してデータベースに保存しようとしています。ページのタグでjsonを作成する。Python - HTMLコメントがシリアル化されない
タグの中には、これは通常のタグ項目であり、それに問題がない
<script type="text/javascript">RegisterSod("search.js", "");</script><script type="text/javascript" language="JavaScript" defer="defer">
<!--
function SearchEnsureSOD() { EnsureScript('search.js',typeof(GoSearch)); } _spBodyOnLoadFunctionNames.push('SearchEnsureSOD');function SB420AF5B_Submit()
.
.
.
{ document.getElementById('ctl00_region_header_region_headerLinks_helpAreaID_ctl00_ctl00_SB420AF5B_InputKeywords').value=''; }}
// -->
</script>
のようなJavaScriptを含んでいます。
{'tag': 'div', 'unqid': '.....', 'id': 'newsContent0'}
しかし、JavaScriptのタグを私は取得していますエラー
{'text': 'IK F uu ph---------------------', 'tag': <cyfunction Comment at 0x00000000027A79A0>, 'unqid': '.....'}
これは私のコードです:私はダンプすることができますどのように
ac = requests.get(url)
html_text = ac.text
lx = html.fromstring(html_text)
...some parsing codes
json.dumps(items).decode('utf-8') --> where I am getting error
エラーが
Traceback (most recent call last):
File "main3.py", line 132, in <module>
PageRunner(url)
File "main3.py", line 122, in PageRunner
InsertPageTags(1, url)
File "main3.py", line 58, in InsertPageTags
parameter = (WebsiteID, Url, json.dumps(items).decode('utf-8'))
File "C:\Python27\lib\json\__init__.py", line 244, in dumps
return _default_encoder.encode(obj)
File "C:\Python27\lib\json\encoder.py", line 207, in encode
chunks = self.iterencode(o, _one_shot=True)
File "C:\Python27\lib\json\encoder.py", line 270, in iterencode
return _iterencode(o, 0)
File "C:\Python27\lib\json\encoder.py", line 184, in default
raise TypeError(repr(o) + " is not JSON serializable")
TypeError: <cyfunction Comment at 0x00000000029279A0> is not JSON serializable
を下回っていますコメント付きのhtmlまたはhtからのコメントを削除するml?
コメントを削除しますか? <! - タグを取り出してください。 –
@Halislus - URLは何ですか?また、解析コードのいくつかがありますので、答えの作業例をテストできますか? – David542