Python 是否有更好的方法按id格式化这些元素?
我重复了以下代码,想知道是否有人对如何更有效地编写此代码提出了一些建议:Python 是否有更好的方法按id格式化这些元素?,python,selenium,xpath,web-scraping,Python,Selenium,Xpath,Web Scraping,我重复了以下代码,想知道是否有人对如何更有效地编写此代码提出了一些建议: def get_description(links): for link in links: description = driver.find_elements_by_id('some-id') description = [x.text for x in description] description = " ".join(description)
def get_description(links):
for link in links:
description = driver.find_elements_by_id('some-id')
description = [x.text for x in description]
description = " ".join(description)
title = driver.find_elements_by_id('different-id')
title = [x.text for x in title]
title = " ".join(title)
company = driver.find_elements_by_id('another-different-id')
company = [x.text for x in company]
company = " ".join(company)
location = driver.find_elements_by_id('location-id')
location = [x.text for x in location]
location = " ".join(location)+ " United Kingdom"
salary = driver.find_elements_by_xpath("//*[@id='randomly generated id']/div[3]/span[1]")
salary = [x.text for x in salary]
salary = " ".join(salary)
我尝试定义一个名为“element_parse”的单独函数,如下所示:
def parse_element(x)
x = [y.text for y in x]
x = " ".join(x)
然后通过执行以下操作调用此主函数:
description = driver.find_elements_by_id('some-id')
parse_element(description)
但是,唉!没有快乐
我不是一个停止表演的人,因为我已经让它工作了,但是我觉得这里有很多重复,我想清理一下 你就快到了。您需要从函数中返回x的值,并将该值重新分配给该结果。因此:
def parse_element(x)
x = [y.text for y in x]
x = " ".join(x)
return x
你可以通过尝试下面的方法摆脱重复。此外,您不需要创建另一个函数来清理问题
def get_description(links):
for link in links:
description = ' '.join([x.text for x in driver.find_elements_by_id('some-id')])
title = ' '.join([x.text for x in driver.find_elements_by_id('different-id')])
company = ' '.join([x.text for x in driver.find_elements_by_id('another-different-id')])
location = ' '.join([x.text for x in driver.find_elements_by_id('location-id')])
salary = ' '.join([x.text for x in driver.find_elements_by_xpath("//*[@id='randomly generated id']/div[3]/span[1]")])
如果您想改进工作代码,请询问有关感谢Andersson的问题-我没有意识到这一点。我将很好地使用CodeReview,因此感谢您提醒我注意这一点!谢谢你,丹尼尔!这肯定有帮助。最后,我将另一个变量“y”传递给保存id的函数。
def get_description(links):
for link in links:
description = ' '.join([x.text for x in driver.find_elements_by_id('some-id')])
title = ' '.join([x.text for x in driver.find_elements_by_id('different-id')])
company = ' '.join([x.text for x in driver.find_elements_by_id('another-different-id')])
location = ' '.join([x.text for x in driver.find_elements_by_id('location-id')])
salary = ' '.join([x.text for x in driver.find_elements_by_xpath("//*[@id='randomly generated id']/div[3]/span[1]")])