我刚开始使用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()
感谢您的帮助!谢谢
答案 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