python爬蟲爬取頁面源碼在本頁面展示


python爬蟲在爬取網頁內容時,需要將內容連同內容格式一同爬取過來,然后在自己的web頁面中顯示,自己的web頁面為django框架
首先定義一個變量html,變量值為一段HTML代碼
>>> print(html)
<div id=1> 
 &nbsp;&nbsp;my <br> 
 &nbsp; name <br>
 is &nbsp; JAY <br> 
 </div>
,我們現在要取div里面的內容,在自己的web頁面中顯示,空格和換行符等都以HTML代碼的形式抓取。最終想要的數據為
&nbsp;&nbsp;my <br>
&nbsp; name <br>
is &nbsp; JAY <br>
 
(1)首先soup.string是不行的,因為div下面不止一個子標簽
>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup(html, 'html.parser')
>>> soup.string
>>> 
可以看到返回值為空
(2)使用get_text()也是不行的,因為get_text()獲取的字符串都是轉義后的,我們要的是原生的HTML代碼
>>> soup.get_text()
' \n \xa0\xa0my  \n \xa0 name \n is \xa0 JAY \n'
不過get_text()在其他很多場合很實用,它可以獲取標簽下的所有子孫標簽內的文本內容
同時可以指定參數
>>> soup.get_text('|')  #所有tag文本內容的分隔符
' \n \xa0\xa0my | \n \xa0 name |\n is \xa0 JAY |\n'

>>> soup.get_text('|', strip=True)   #去掉文本內容前后的空白
'my|name|is \xa0 JAY'
或者使用soup.stripped_strings生成器,獲取文本內容手動處理
(3)可以使用.contents
>>> content_soup = soup.div.contents
>>> content_soup
[' \n \xa0\xa0my ', <br/>, ' \n \xa0 name ', <br/>, '\n is \xa0 JAY ', <br/>, '\n']
>>> content_soup = [str(i) for i in content_soup]   #列表中的所有值改換為字符串類型
>>> content_text = ''.join(content_soup)     #合並列表到一個字符串中
>>> content_text
' \n \xa0\xa0my <br/> \n \xa0 name <br/>\n is \xa0 JAY <br/>\n'
>>> print(content_text)
 
   my <br/> 
   name <br/>
 is   JAY <br/>
至此,就可以直接將變量放到web頁面中


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM