2016-02-02 202 views
1

我使用robobrowser來抓取這個頁面,在頁面裏面有一個textarea標籤,裏面有我需要複製和存儲的信息。如何從標籤中提取文本?

這是我的代碼:

>>> captchacode = captchabrowser.find('textarea') 
>>> print(captchacode) 
<textarea cols="100" rows="5">03AHJ_VuvjiQUpaQ-JFLXqAJaUQ217f7bHqa3hG__VSG1YsbjNtsT2FGFrJksCansOxwuxniksyCsnHJTvlCeGdi2jeqUyuDfUGAQ1WIuJqO55ACslBSUnd-MtAMDIOmbTa1G9uh1QMBdZUTRXwmt1kOn7oNf6ZflnUGAtIOGeTSgx-wu8hOWY-Pw</textarea> 

如何通過他們的自我得到

<textarea cols="100" rows="5">XXXXXX</textarea> 

我需要XXXXX在變量中的文本。

+1

有一個格式錯誤,把數據放在textarea裏面是不好的HTML。它應該是'',請注意這一點。 –

+0

@aarongillion我刮的網站有這樣的,我不能改變它:( –

+1

這很好,我只是指出它 –

回答

1

這是一個快速測試,使用python2。

from bs4 import BeautifulSoup 
html='<textarea cols="100" rows="5">03AHJ_VuvjiQUpaQ-JFLXqAJaUQ217f7bHqa3hG__VSG1YsbjNtsT2FGFrJksCansOxwuxniksyCsnHJTvlCeGdi2jeqUyuDfUGAQ1WIuJqO55ACslBSUnd-MtAMDIOmbTa1G9uh1QMBdZUTRXwmt1kOn7oNf6ZflnUGAtIOGeTSgx-wu8hOWY-Pw</textarea>' 
soup = BeautifulSoup(html, 'html.parser') 
ta = soup.find('textarea') 
if ta: 
    print ta.get_text() 
else: 
    print "no such element" 

,輸出:

03AHJ_VuvjiQUpaQ-JFLXqAJaUQ217f7bHqa3hG__VSG1YsbjNtsT2FGFrJksCansOxwuxniksyCsnHJTvlCeGdi2jeqUyuDfUGAQ1WIuJqO55ACslBSUnd-MtAMDIOmbTa1G9uh1QMBdZUTRXwmt1kOn7oNf6ZflnUGAtIOGeTSgx-wu8hOWY-Pw 

如果你只有一個文本區域,您可以使用find,otherwize,使用find_all

+0

我得到這一點,但當我嘗試設置我= ta.get_text()我的總是返回無 –

+0

您在哪個範圍內分配了'my'? – Aif

+0

我不知道這是什麼意思,我做了這個 my = ta.get_text() print(my) –

相關問題