我正在使用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)
现在,代码在数据框中返回“无”
答案 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})