第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在將數(shù)據(jù)插入 sqlite db 之前,如何用從 selenium 抓取獲得的文本中的實(shí)際字符替換

在將數(shù)據(jù)插入 sqlite db 之前,如何用從 selenium 抓取獲得的文本中的實(shí)際字符替換

慕勒3428872 2021-10-12 10:23:17
我正在使用帶有 Python 2.7 的 Selenium (Chromedriver) 來(lái)抓取網(wǎng)站以獲取一些顯示在標(biāo)簽中的動(dòng)態(tài)文本。里面是嵌套在 JSON 對(duì)象中的 HTML 代碼,用于在我正在查看的頁(yè)面上創(chuàng)建內(nèi)容列表,但我只對(duì)獲取文本內(nèi)容感興趣。我能夠弄清楚如何使用 清除 HTML 標(biāo)簽re,但文本仍然包含特殊字符的 HTML 字符代碼,我想用它們對(duì)應(yīng)的字符替換。因此,例如,假設(shè)我的 json(在清除 HTML 標(biāo)簽后)如下:[    {        "data": {            "published_on": "2019-01-15T08:46:00+00:00",             "id": "somealphanumericid",             "short_description": "Albert Einstein&#8217;s Theory of Relativity&#58; Should We Worry&#8230;&#63;",             "series": "Science",             "long_description": "Albert Einstein does an interview with Mr&#46; John Smith about the application of the theory of relativity&#44; and what it could mean for the future of the pizza industry&#33;",             "duration": "752000",             "type": "video",             "title": "Albert Einstein&#8217;s Theory of Relativity&#58;"        },         "links": {            "permalink": "https://www.stackoverflow.com"        },         "key": "somealphanumericid"    },    ...]編輯:JSON 對(duì)象實(shí)際上是一個(gè) JSON 對(duì)象數(shù)組,因此[]. 我正在抓取的站點(diǎn)是分頁(yè)的,所以我從每個(gè)頁(yè)面獲取 JSON,最后將它們連接成一個(gè)數(shù)組,以便更容易使用。您可以看到句點(diǎn)、逗號(hào)、冒號(hào)等字符被抓取為相應(yīng)的 HTML 字符代碼?,F(xiàn)在,我正在遍歷 JSON 并將所有內(nèi)容放入 sqlite 數(shù)據(jù)庫(kù)中,因此我是否替換 JSON 本身中的字符代碼,或者是否在將數(shù)據(jù)推送到數(shù)據(jù)庫(kù)之前進(jìn)行替換都沒(méi)有關(guān)系。我嘗試做的第一件事是使用輔助函數(shù),該函數(shù)將字符串作為參數(shù)并返回替換了字符的字符串。我基本上修改了可以在這里找到的解決方案。所以這個(gè)函數(shù)是:但是,這導(dǎo)致解析時(shí)出現(xiàn)以下錯(cuò)誤HTMLEntitiesToUnicode(data[i]['data']['series']):File "BeautifulSoup.py", line 1918, in _detectEncoding    '^<\?.*encoding=[\'"](.*?)[\'"].*\?>').match(xml_data)TypeError: expected string or buffer我不明白為什么 BeautifulSoup 沒(méi)有將其視為字符串,但我嘗試將其修改為:HTMLEntitiesToUnicode(str(data[i]['data']['series']))然后給了我錯(cuò)誤:File "support.py", line 162, in json_to_rows    HTMLEntitiesToUnicode(str(data[i]['data']['series'])),UnicodeEncodeError: 'ascii' codec can't encode character u'\u2019' in position 129: ordinal not in range(128)添加.encode('utf-8')也沒(méi)有解決錯(cuò)誤(在具有相同錯(cuò)誤消息的各種其他帖子中推薦這樣做)。我的最終目標(biāo)只是將所有這些信息刮到一個(gè) db 中,使其格式化為正常的清晰文本(除了持續(xù)時(shí)間,INTEGER無(wú)論如何都是類(lèi)型的)。我想在數(shù)據(jù)被送入數(shù)據(jù)庫(kù)之前/當(dāng)數(shù)據(jù)被送入數(shù)據(jù)庫(kù)時(shí)替換字符,但也有可能我可以在一個(gè)單獨(dú)的函數(shù)中遍歷數(shù)據(jù)庫(kù)并清理它,盡管這似乎效率低得多這樣做的方式。
查看完整描述

2 回答

?
泛舟湖上清波郎朗

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超3個(gè)贊

我認(rèn)為您在上面遇到的問(wèn)題是您的文本已經(jīng)是 unicode 格式,而您正試圖將其再次轉(zhuǎn)換為 unicode,這導(dǎo)致了您的錯(cuò)誤。


下面的代碼對(duì)我有用,并給出了如下所示的輸出。


from bs4 import BeautifulSoup


text = "Albert Einstein&#8217;s Theory of Relativity&#58; Should We Worry&#8230;&#63;"

parsed_html = BeautifulSoup(text)


print 'Original Type: ' + type(text)

print 'Original Text: ' + text

print 'Parsed Type:   ' + type(parsed_html.text)

print 'Parsed Text:   ' + parsed_html.text

輸出:


Original Type: <type 'str'>

Original Text: Albert Einstein&#8217;s Theory of Relativity&#58; Should We Worry&#8230;&#63;

Parsed Type: <type 'unicode'>

Parsed Text: Albert Einstein’s Theory of Relativity: Should We Worry…?

使用 BeautifulSoup4 版本 4.7.1


點(diǎn)安裝 bs4


查看完整回答
反對(duì) 回復(fù) 2021-10-12
?
慕田峪4524236

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超5個(gè)贊

事實(shí)證明,原因HTMLEntitiesToUnicode()對(duì)我不起作用是因?yàn)槲艺趶?.json 文件中讀取數(shù)據(jù),該文件已寫(xiě)入但未指示應(yīng)將其保存在 .json 文件中utf-8。解決這個(gè)問(wèn)題,然后HTMLEntititesToUnicode()如上所述使用效果很好。


查看完整回答
反對(duì) 回復(fù) 2021-10-12
  • 2 回答
  • 0 關(guān)注
  • 202 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)