如何获得将结果保存到数据框的功能

时间:2019-04-25 23:27:07

标签: python python-3.x function selenium

我正在使用Selenium进行一些Web抓取,能够返回电话号码和电子邮件,但无法将其附加到我的数据框中。

我尝试运行该函数,它会吐出正确的信息,并且我尝试将函数的结果保存到变量中,然后将其放入数据框中,但这只是无法保存我尝试获取的方式保存

df = pd.DataFrame(columns=['Phone', 'EmailAddress'])

def phonenumber():
   for element in browser.find_elements_by_xpath('.//span[@class = "phone ng-binding ng-scope"]'):
       return(element.text)


def email():
   for element in browser.find_elements_by_xpath('.//span[@class = "email ng-scope"]'):
       return(element.text)

df = df.append({'Phone': phonenumber(), 'EmailAddress': email()}, ignore_index=True)

现在,代码在数据框中返回“无”

1 个答案:

答案 0 :(得分:1)

您可以将for循环中的每个element附加到每个函数的相应空列表中,从函数中返回它们,然后使用它们来创建数据框:

def phonenumber():  
    ph = []     
    for element in browser.find_elements_by_xpath('.//span[@class = "phone ng-binding ng-scope"]'):
         ph.append(element.text)
    return ph


def email():
    mail = []
    for element in browser.find_elements_by_xpath('.//span[@class = "email ng-scope"]'):
        mail.append(element.text)
    return mail

ph = phonenumber()
mail = email()

现在使用附加列表创建数据框。这是假设列表的长度相等。

df = pd.DataFrame({'Phone':ph, 'EmailAddress':mail})