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中以正确的顺序将刮取的数据写入数据帧_Python_Selenium_Dataframe_Web Scraping - Fatal编程技术网

如何在Python中以正确的顺序将刮取的数据写入数据帧

如何在Python中以正确的顺序将刮取的数据写入数据帧,python,selenium,dataframe,web-scraping,Python,Selenium,Dataframe,Web Scraping,我有下面的python程序,它正在浏览一个网站以获取名称、公司名称和地址。这个很好用。然后,我尝试将刮取的数据写入数据帧。我希望他们的顺序正确。有时网站没有公司名称,只有名称和地址,如果公司名称不存在,我是否可以指定它采用默认值?因为当我尝试将其写入数据帧时,会出现以下错误: “ValueError:值的长度与索引的长度不匹配” 因为每个成员都没有公司名称 memeberName = WebDriverWait(driver, 20).until(EC.visibility_of_all_ele

我有下面的python程序,它正在浏览一个网站以获取名称、公司名称和地址。这个很好用。然后,我尝试将刮取的数据写入数据帧。我希望他们的顺序正确。有时网站没有公司名称,只有名称和地址,如果公司名称不存在,我是否可以指定它采用默认值?因为当我尝试将其写入数据帧时,会出现以下错误:

“ValueError:值的长度与索引的长度不匹配”

因为每个成员都没有公司名称

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