2016-02-02 140 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) –

相关问题