Сценарий Python, который автоматически вводит текст на веб-сайт и получает его исходный код - PullRequest
2 голосов
/ 26 ноября 2011

Я делаю биомедицинское извлечение имен с использованием Python.

Теперь мне нужно перепроверить результаты ввода текста в http://text0.mib.man.ac.uk/software/geniatagger/ и проанализировать исходный код текста HTML, который я получаю после отправки текста в него.

IЯ хочу, чтобы то же самое было сделано в самом моем графическом интерфейсе, то есть на основе созданного мной графического интерфейса, и отправил текст на этот веб-сайт и получил исходный код, чтобы при перекрестной проверке мне не приходилось каждый раз посещать браузер..

Заранее спасибо

1 Ответ

5 голосов
/ 26 ноября 2011

На самом деле, это отличный вопрос!

Первое, что вам нужно сделать, это немного изучить исходный код сайта. Если вы посмотрите на исходный код сайта, вы увидите этот блок кода

<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, а имя текстовой области - «абзац»

Мы открываем это, используя этот код 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()

И что мы получаем так далеко? У нас есть «движок» для вашей программы с графическим интерфейсом. Что вы можете сделать, это проанализировать эту переменную содержимого с помощью HTMLParser Python (необязательно) И вы упомянули, что хотите отобразить это в графическом интерфейсе? Вы можете сделать это с помощью GTK или Qt и отобразить эту функцию на одну кнопку, вы должны прочитать учебник , это действительно легко для этой цели. Если у вас есть проблемы, просто прокомментируйте этот пост, и я могу расширить этот ответ с помощью GUI

...