Использование BeautifulSoup для получения данных и отправки на другую вкладку браузера - PullRequest
0 голосов
/ 17 октября 2018

Я только недавно запустил Python, и я ищу способ автоматизировать задачу, которую я слишком часто выполняю вручную.Сейчас я копирую эти два поля вручную, копирую в буфер обмена, прежде чем использовать эти значения на следующей вкладке браузера, которая является отправителем SMS.У него есть два текстовых поля, в которые я хочу ввести их оба в каждое их поле.Это выполнимо?

У меня есть веб-сайт, с которого я хочу извлечь данные.HTML-код на веб-сайте выглядит следующим образом:

<dl>        
<dt>Date of birth</dt>   
<dd>01.01.1900</dd>

<dt>Name</dt>
<dd>Name of person</dd>

<dt>Id</dt>
<dd>212780</dd> <- I want this

<dt>Email</dt>
<dd>email@email.com</dd>

<dt>Day phone</dt>
<dd>01234567</dd>

<dt>Mobile phone</dt>
<dd>12345678</dd>  <-- I want this       
</dl>

Я отметил информацию, которую хочу скопировать

Итак, я хочу скопировать в буфер обмена:

212780 12345678

Теперь мне нужно вставить их в текстовые поля на моей следующей вкладке браузера.Первое значение помещается в textbox2, а второе - в textbox1.

Я пробовал разные подходы с использованием Beautifulsoup, но не могу понять, что правильно.Это то, с чем мне больше всего повезло, но это печать значений.Может ли кто-нибудь помочь мне в правильном направлении?

import re

def find_by_label(soup, label):
    return soup.find("d1", text=re.compile(label)).next_sibling

И используя ut вот так:

find_by_label(soup, "Mobile phone").strip()  

Я ценю любую помощь!Спасибо

1 Ответ

0 голосов
/ 17 октября 2018

Полагаю, вы ищете значения Id и мобильного телефона, поэтому попробуйте что-нибудь

data = BeautifulSoup("""<dl>        
<dt>Date of birth</dt>   
<dd>01.01.1900</dd>

<dt>Name</dt>
<dd>Name of person</dd>

<dt>Id</dt>
<dd>212780</dd>

<dt>Email</dt>
<dd>email@email.com</dd>

<dt>Day phone</dt>
<dd>01234567</dd>

<dt>Mobile phone</dt>
<dd>12345678</dd> 
</dl>""")

dts = data.find_all('dt')
dds = data.find_all('dd')

for i in range(len(dts)):
    if 'Id' in dts[i].text:
        print(dds[i].text)
    if 'Mobile phone' in dts[i].text:
        print(dds[i].text)

Ouput

212780
12345678
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...