Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当数据来自不同位置时,如何关联字典键和值-Python 3.5/bs4/Selenium_Python_Selenium - Fatal编程技术网

当数据来自不同位置时,如何关联字典键和值-Python 3.5/bs4/Selenium

当数据来自不同位置时,如何关联字典键和值-Python 3.5/bs4/Selenium,python,selenium,Python,Selenium,(我是一个新手,所以也许有更好的方法使用其他模块来实现这一点?) 我试图将键与值关联起来,但数据来自两个不同的输入 在我的工作列表的目标网页上,每个工作都有一个工作标题和一个工作描述。两者都是文本,但职务名称还包含指向具有较长描述的唯一网页的链接 我试图做的是下载职位名称,将其与职位描述相关联(然后在关键/价值记录中添加某种唯一的id,可能基于工作邀请的url。一旦我有了这个id,我想将所有这些数据点发送到xls表中,以便验证/删除和存储副本) 我检查了其他答案,但它们超出了我的技术水平,或者不

(我是一个新手,所以也许有更好的方法使用其他模块来实现这一点?) 我试图将键与值关联起来,但数据来自两个不同的输入

在我的工作列表的目标网页上,每个工作都有一个工作标题和一个工作描述。两者都是文本,但职务名称还包含指向具有较长描述的唯一网页的链接

我试图做的是下载职位名称,将其与职位描述相关联(然后在关键/价值记录中添加某种唯一的id,可能基于工作邀请的url。一旦我有了这个id,我想将所有这些数据点发送到xls表中,以便验证/删除和存储副本) 我检查了其他答案,但它们超出了我的技术水平,或者不是我所需要的。我想我需要使用循环或函数,但不确定要在其中写入什么。谢谢你的帮助

from selenium import webdriver

driver = webdriver.Firefox()
driver.get("https://www.infojobs.net/jobsearch/search-results/list.xhtml#f1=1&item_showFilters=false&item_showExtraFilters=false&f2=20&f3=&f4=0&f5=&f6=9&f7=&f8=0&f9=0&f10=0&f11=0&f12=&f13=true&f14=true&f15=10&f16=true&f17=&f18=&f19=0&f20=4&f21=3002&f22=0&f23=26931879312&f24=0&f25=&f26=0&f27=false&f28=&f29=1&f30=&f31=-2147483648&f32=-2147483648&f34=&item_vieneUrlExecutive=false")
text_offer_description = driver.find_elements_by_class_name('job-list-description')
text_offer_title = driver.find_elements_by_class_name('job-list-title')

dict = []

for el in text_offer_title:
    dict.append(el.text)
    print(el.text)

# If/else? Here I'll check if value already in dict or not 
# barcode = driver.current_url (will assign a "barcode" to that key-value pair)
# print(barcode)
driver.close()

主要问题是标题和描述之间没有关联。我会找到所有“工作”块,每个块都有标题和描述:

for offer in driver.find_elements_by_css_selector("ul#offer-list > li[itemType$=JobPosting]"):
    text_offer_description = offer.find_element_by_css_selector('p.job-list-description').text
    text_offer_title = offer.find_element_by_css_selector('h2.job-list-title a').text

    print(text_offer_description, text_offer_title)

主要问题是标题和描述之间没有关联。我会找到所有“工作”块,每个块都有标题和描述:

for offer in driver.find_elements_by_css_selector("ul#offer-list > li[itemType$=JobPosting]"):
    text_offer_description = offer.find_element_by_css_selector('p.job-list-description').text
    text_offer_title = offer.find_element_by_css_selector('h2.job-list-title a').text

    print(text_offer_description, text_offer_title)

谢谢@Alecxe这很好,但我正在试图找到一种方法来关联这两个值,我不知道如何完成您在这里解释的内容。我如何以编程方式表达“对于此报价和描述块,将它们放在一起,并为它们提供唯一ID”(这样我以后可以对它们进行操作,而不会对我以前已经执行过的操作进行操作。例如,如果我以前访问/存储过此报价,请跳过。如果没有,请使用此新ID添加到字典中,然后继续程序“…谢谢@Alecxe这很好,但我正在试图找到一种方法来关联这两个值,我不知道如何完成您在这里解释的内容。我如何以编程方式表达”对于这段提供和描述,请将它们放在一起,并为它们提供此唯一ID”(因此,我以后可以对它们进行操作,而不会对我以前已经执行过的操作进行操作。例如,如果我以前访问/存储过此优惠,请跳过。如果没有,请使用此新id添加到词典中,然后继续执行程序”。。。