我正在使用以下python代码启动Firefox网页。
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver= webdriver.Firefox()
driver.get("https://www.quora.com")
启动后,如果我以某种方式知道此标签的xpath。
<input
class="text header_login_text_box ignore_interaction"
type="text"
name="email" tabindex="1"
data-group="js-editable"
placeholder="Email"
w2cid="wZgD2YHa18"
id="__w2_wZgD2YHa18_email">
如果我现在使用属性的名称,则可以使用以下命令在python上使用Selenium Webdriver提取属性。
dict['attribute'] = driver.find_element_by_xpath(x_path).get_attribute(attribute)
所以我的输出将是
dict = { 'attribute':value}
即使我不知道它具有什么所有属性,也请帮助我找出使用其值提取所有属性的方法。我的预期输出是
dict = { "class" : "text header_login_text_box ignore_interaction"
"type" : "text"
"name":"email"
"tabindex" : "1"
"data-group" : "js-editable"
"placeholder" : "Email"
"w2cid" : "wZgD2YHa18"
"id" : "__w2_wZgD2YHa18_email"
}
我不确定它能达到多远,但是我希望像在字典中一样,即使不知道键,我们也可以提取数据。 谢谢
答案 0 :(得分:0)
使用.attrs
import bs4
html = '''<input
class="text header_login_text_box ignore_interaction"
type="text"
name="email" tabindex="1"
data-group="js-editable"
placeholder="Email"
w2cid="wZgD2YHa18"
id="__w2_wZgD2YHa18_email">'''
soup = bs4.BeautifulSoup(html, 'html.parser')
for tag in soup:
attr_dict = (tag.attrs)
输出:print (attr_dict)
{'class': ['text', 'header_login_text_box', 'ignore_interaction'],
'type': 'text',
'name': 'email',
'tabindex': '1',
'data-group': 'js-editable',
'placeholder': 'Email',
'w2cid': 'wZgD2YHa18',
'id': '__w2_wZgD2YHa18_email'}