使用BeautifulSoup提取数据并发送到另一个浏览器选项卡

时间:2018-10-17 14:14:04

标签: python beautifulsoup

我刚开始使用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 :(得分:0)

我猜您正在寻找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)

输出

212780
12345678