嗨伙计们,我有一个我需要解析的HTML页面。所以我需要姓名和电子邮件地址。
姓: 电子邮件地址:
所以我尝试了这个:
from bs4 import BeautifulSoup
def get_page_data():
soup = BeautifulSoup(html, 'lxml')
email = soup.find(id='email')
first = soup.find(id='name.first')
data = {'first': first,
'email': email
}
return data
它给了我输出:
{
name:id="name.last" name="name.last" tabindex="2" type="text" value="**Name I need**"/>
<br />
email:id="email" name="email" tabindex="0" style="background-color:#D4D0C8;" readonly="readonly" type="text" value="**Email I need**" size="30" maxlength="50"/><br />
}
我试图将每个转换为字符串并切片。输出是:name:value =“我需要的名字”,电子邮件:value =“我需要的电子邮件”
但它可能不适用于其他页面。
尝试.next_sibling或previou_sibling但返回:无。
我相信有更优雅的方法可以解决这个问题。也许还有我或错过了来自BeautifulSoup的smth。
任何建议都会很高兴。
先感谢您。
要提取属性,您需要在选择元素后调用属性名称。
def get_page_data():
soup = BeautifulSoup(html, 'lxml')
email = soup.find(id='email')
first = soup.find(id='name.first')
data = {'first': first['value'],
'email': email['value']
}
return data
希望这可以帮助!干杯!