![](/img/trans.png)
[英]Python is printing everything, I only want it to print the last number
[英]Trying to print out only “state failed” but Python is printing everything
我正在瀏覽網頁的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<br>Run: 2018-12-22T04:00:00<br>Operator: CruxCleanupOperator<br>Started: 2018-12-24T18:34:39.149434<br>Ended: 2018-12-24T18:34:45.935977<br>Duration: 6.78654<br>State: failed<br>" 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<br>Run: 2018-12-22T04:00:00<br>Operator: CompletionBranchOperator<br>Started: 2018-12-24T18:33:30.834983<br>Ended: 2018-12-24T18:33:33.037330<br>Duration: 2.20235<br>State: success<br>" 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>
我將所有組合都用單引號,雙引號甚至三引號捆綁在一起。 沒關系。 它會打印所有內容,甚至不包含“狀態失敗”的字符串。 知道這里有什么問題嗎? 謝謝。
也許您可以嘗試將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()
然后它應該工作。
而不是if "state failed" in link:
,則將其替換為if "state failed" is link.get('class')
或if "state failed" == link.get('class')
。 我認為您最好使用is
,因為您可能會因為link.get('class')
沒有class
屬性而得到None
。
您也可以這樣操作:
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()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.