亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

試圖僅打印出“狀態失敗”但 Python 正在打印所有內容

試圖僅打印出“狀態失敗”但 Python 正在打印所有內容

搖曳的薔薇 2021-09-25 09:59:48
我正在循環瀏覽網頁的 HTML 內容并嘗試僅打印帶有子字符串“狀態失敗”的字符串。然而,Python 正在打印每一個字符串,即使是那些沒有子字符串“狀態失敗”的字符串。這是我的代碼:soup = bs(html_page, 'lxml')outF = open('C:/Users/ryans/OneDrive/Desktop/test.csv', 'w')for link in soup.findAll('rect'):    if "state failed" in link:        if link.isoweekday() in range(1, 6):            outF.write(str(link))            outF.write('\n')   outF.close()這是我希望打印的一個,它是。<rect class="state failed" data-original-title="Task_id: failure_cleanup&lt;br&gt;Run: 2018-12-22T04:00:00&lt;br&gt;Operator: CruxCleanupOperator&lt;br&gt;Started: 2018-12-24T18:34:39.149434&lt;br&gt;Ended: 2018-12-24T18:34:45.935977&lt;br&gt;Duration: 6.78654&lt;br&gt;State: failed&lt;br&gt;" data-toggle="tooltip" height="10" rx="0" ry="0" style="shape-rendering: crispedges; stroke-width: 1; stroke-opacity: 1;" title="" width="10" x="984" y="-5"></rect>這是我希望不會被打印的一個,但出于某種奇怪的原因正在打印它。<rect class="state success" data-original-title="Task_id: join_cleanup&lt;br&gt;Run: 2018-12-22T04:00:00&lt;br&gt;Operator: CompletionBranchOperator&lt;br&gt;Started: 2018-12-24T18:33:30.834983&lt;br&gt;Ended: 2018-12-24T18:33:33.037330&lt;br&gt;Duration: 2.20235&lt;br&gt;State: success&lt;br&gt;" data-toggle="tooltip" height="10" rx="0" ry="0" style="shape-rendering: crispedges; stroke-width: 1; stroke-opacity: 1;" title="" width="10" x="984" y="-5"></rect>我用單引號、雙引號甚至三引號將所有組合綁定在一起。沒關系。它打印所有內容,甚至是不包含“狀態失敗”的字符串。知道這里有什么問題嗎?謝謝。
查看完整描述

3 回答

?
隔江千里

TA貢獻1906條經驗 獲得超10個贊

而不是if "state failed" in link:,將其替換為if "state failed" is link.get('class')或if "state failed" == link.get('class')。我想你最好一起去is,因為你可能得到None的link.get('class')是class屬性是不存在的。


你也可以這樣做:


soup = bs(html_page, 'lxml')

outF = open('C:/Users/ryans/OneDrive/Desktop/test.csv', 'w')

for link in soup.findAll('rect', attrs={'class': 'state failed'}):

    if link.isoweekday() in range(1, 6):

        outF.write(str(link))

        outF.write('\n')   

outF.close()


查看完整回答
反對 回復 2021-09-25
?
慕斯王

TA貢獻1864條經驗 獲得超2個贊

也許你可以嘗試把它link變成一個字符串:


soup = bs(html_page, 'lxml')

outF = open('C:/Users/ryans/OneDrive/Desktop/test.csv', 'w')

for link in soup.findAll('rect'):

    if "state failed" in str(link):

        if link.isoweekday() in range(1, 6):

            outF.write(str(link))

            outF.write('\n')   

outF.close()

那么它應該工作。


查看完整回答
反對 回復 2021-09-25
  • 3 回答
  • 0 關注
  • 210 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號