一个自动输入文本并获取网页源代码的Python脚本

3 投票
1 回答
6188 浏览
提问于 2025-04-17 07:07

我正在用Python做生物医学的命名提取。

现在我需要检查一下,把文本输入到这个网站后得到的结果,并解析提交后得到的HTML源代码。

我希望能在我自己做的图形界面(GUI)里完成同样的事情,也就是说,直接从我的界面输入文本,提交到这个网站,然后获取源代码,这样我就不用每次都去浏览器查看了。

提前谢谢你!

1 个回答

5

其实,这是个很好的问题!

首先,你需要稍微了解一下这个网站的源代码。如果你查看网站的源代码,你会看到这一段代码:

<form method="POST" action="a.cgi">
<p>
Please enter a text that you want to analyze.
</p>
<p>
<textarea name="paragraph" rows="15" cols="80" wrap="soft">
... some text here ...
### This is a sample. Replace this with your own text.

</textarea>
</p>
<p>
<input type="submit" value="Submit Text" />
<input type="reset" />
</p>
</form>

你会发现请求是发送到一个叫做 a.cgi 的地址,因为我们已经在这个地址上了。

http://text0.mib.man.ac.uk/software/geniatagger/

我们想要发送的数据会和这个地址拼接在一起。

http://text0.mib.man.ac.uk/software/geniatagger/a.cgi

那么我们要发送什么呢?我们需要一些数据,这些数据会作为“段落”这个 POST 参数发送。你可以看到,因为表单的属性方法是 POST,而文本区域的名字是“paragraph”。

我们可以用这段 Python 代码来打开它:

import urllib
import urllib2

text =  """
        Further, while specific constitutive binding to the peri-kappa B site is seen in monocytes, stimulation with phorbol esters induces additional, specific binding. Understanding the monocyte-specific function of the peri-kappa B factor may ultimately provide insight into the different role monocytes and T-cells play in HIV pathogenesis. 

### This is a sample. Replace this with your own text.
        """
data = {
        "paragraph" : text 
       }

encoded_data = urllib.urlencode(data)
content = urllib2.urlopen("http://text0.mib.man.ac.uk/software/geniatagger/a.cgi",
        encoded_data)
print content.readlines()

到目前为止,我们得到了一个“引擎”,可以用来支持你的图形界面程序。你可以用 Python 的 HTMLParser 来解析这个内容变量(这一步是可选的)。你提到想在图形界面上显示这些内容?你可以使用 GTK 或 Qt,并把这个功能映射到一个按钮上。你必须阅读一个 教程,这个过程真的很简单。如果你遇到问题,随时在这个帖子下评论,我可以进一步扩展这个关于图形界面的回答。

撰写回答