如何解决为行分配菜单标题
我设法通过无头浏览器抓取了所有人员的姓名和职务,该浏览器单击所有可扩展的窗口并呈现数据。
我现在想做的就是将这些可扩展窗口的名称分配给人员名称,我想这就像为行分配组标签。问题是可扩展窗口的名称没有分别分配给每个人的姓名,因此我大约有1,000个组标签(=可扩展窗口的名称)来分配7,000行以上(=人名/职务)。
有问题的网站是:https://op.europa.eu/en/web/who-is-who/organization/-/organization/COM/COM
例如我想将标签“专员学院”分配给您在扩展窗口时看到的所有名称,例如Ursula von der Leyen女士,Frans Timmermans先生等。
下面是我到目前为止的代码,但是当前代码使我失去类别“专员学院”和名称之间的联系。我认为我需要采取的步骤,但到目前为止,还不知道如何转换为正确的代码:
-
单击打开后,从该链接获取类别
-
创建一个将类别传递给它的函数,并获取名称和标题,并保持类别不变
-
使用温度,将类别以数组格式temp = [category]
存储在其中 -
temp = append.name.get_attribute(“ textContent”)
-
text_names.append(temp)
-
返回并重复
如果有人知道如何将其转换为正确的代码,那将大有帮助。谢谢!
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument('headless')
options.add_argument("window-size=1400,600")
browser = webdriver.Chrome(executable_path="/Users/macbookair/opt/anaconda3/bin/chromedriver",options = options)
url = ("https://op.europa.eu/en/web/who-is-who/organization/-/organization/COM/COM")
browser.get(url)
# open all the windows
from itertools import repeat
import time
for i in repeat(None,4):
like = browser.find_elements_by_xpath('/html//body//div//li/div/span[@tabindex="0"]')
for x in range(0,len(like)):
if like[x].is_displayed():
like[x].click()
time.sleep(10)
# Get COM names
names = browser.find_elements_by_xpath('/html//body//div//li/div/span//span/a[@target="_top"]')
text_names = []
for name in names:
temp = name.get_attribute("textContent")
text_names.append(temp)
# putting it all together and saving to CSV
import pandas
a = {'Names': text_names}
df = pandas.DataFrame.from_dict(a,orient='index')
df = df.transpose()
df.to_csv("./COMscrape.csv",sep=',',index=False)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。