如何在Python中以正确的顺序将刮取的数据写入数据帧
我有下面的python程序,它正在浏览一个网站以获取名称、公司名称和地址。这个很好用。然后,我尝试将刮取的数据写入数据帧。我希望他们的顺序正确。有时网站没有公司名称,只有名称和地址,如果公司名称不存在,我是否可以指定它采用默认值?因为当我尝试将其写入数据帧时,会出现以下错误: “ValueError:值的长度与索引的长度不匹配” 因为每个成员都没有公司名称如何在Python中以正确的顺序将刮取的数据写入数据帧,python,selenium,dataframe,web-scraping,Python,Selenium,Dataframe,Web Scraping,我有下面的python程序,它正在浏览一个网站以获取名称、公司名称和地址。这个很好用。然后,我尝试将刮取的数据写入数据帧。我希望他们的顺序正确。有时网站没有公司名称,只有名称和地址,如果公司名称不存在,我是否可以指定它采用默认值?因为当我尝试将其写入数据帧时,会出现以下错误: “ValueError:值的长度与索引的长度不匹配” 因为每个成员都没有公司名称 memeberName = WebDriverWait(driver, 20).until(EC.visibility_of_all_ele
memeberName = WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, '.member-name')))
company = WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, '.company-name')))
address = WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, '.list-address-panel')))
mb = []
comp = []
add = []
df = pd.DataFrame(columns = ['MemberName', 'Company', 'Address'])
for getname in memeberName:
print("Name:" + getname.text) #returns 20 results
mb.append(getname.text)
for getcompany in company:
print("CompanyName:" + getcompany.text) #returns 18 results
comp.append(getcompany.text)
for getaddress in address:
print("Address:" + getaddress.text) #returns 20 results
add.append(getaddress.text)
df["MemberName"] = mb
df["Address"] = add
df["Company"] = comp
print(df)
我需要刮取的数据在div标记中,而不是在表中。因此,我正试图找到一种方法,以正确的顺序来处理细节。我需要每个人的姓名、公司和地址。如果公司因某些原因缺失,我需要为空、NAN或null,则不应采用其他名称的公司
下面(使用itertools.zip\u)
输出
0 A Z 12.0
1 B X NaN
2 C None NaN
所以问题不在于顺序,而是要有一个空字符串来保持位置?修改提取数据的方式是解决方案,如果数据显示在表中,则迭代trsWell,您可以检查…如果公司名称未定义/为空,则相应地在变量中传递默认值。@Wonka请查看我的编辑。数据在div中tags@Sindu_然后迭代maindiv@Wonka这会给我所有的细节。但是我无法确定哪一个是名称、公司名称和地址。尝试了这个方法,但顺序不正确这是一个错误的答案,如果“a”没有值并且应该有NaN/None值,会发生什么情况,您的答案只是将值指定给项目
0 A Z 12.0
1 B X NaN
2 C None NaN