Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.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、Selenium、DataFrame和Excel_Excel_Python 3.x_Pandas_Selenium_Dataframe - Fatal编程技术网

Python、Selenium、DataFrame和Excel

Python、Selenium、DataFrame和Excel,excel,python-3.x,pandas,selenium,dataframe,Excel,Python 3.x,Pandas,Selenium,Dataframe,我拼凑拼图的最后一部分有困难。整个代码如下所示,其中包括一个非必需的用户名和密码,用于我正在抓取数据的站点 使用从Excel文件循环浏览零件号后 pd.read\u excel() 硒是用来刮网站上的各种问题;然后,代码将这些值成功写入输出窗口 与将数据写入输出窗口不同,我的目标是写入从中提取数据的同一个Excel文件,将其写入适当的列 在代码的最后一个for循环中,我最初尝试通过添加 .to_excel('filePathHere') 对所讨论的变量。作为一个例子,我试图 descript

我拼凑拼图的最后一部分有困难。整个代码如下所示,其中包括一个非必需的用户名和密码,用于我正在抓取数据的站点

使用从Excel文件循环浏览零件号后

pd.read\u excel()
硒是用来刮网站上的各种问题;然后,代码将这些值成功写入输出窗口

与将数据写入输出窗口不同,我的目标是写入从中提取数据的同一个Excel文件,将其写入适当的列

在代码的最后一个
for
循环中,我最初尝试通过添加

.to_excel('filePathHere')
对所讨论的变量。作为一个例子,我试图

description.to_excel('pathToFile/output.xlsx'))
扫描字符串文字(,第1行)时产生
EOL错误

然后我想,也许这个变量需要转换成数据帧,所以我试着

description\u DataFrame=pd.DataFrame(description)
说明\u DataFrame.to \u excel('pathToFile/output.xlsx'))
这导致了相同的错误消息

我甚至不确定这是否是将每个项写入现有(或新)文件的正确逻辑。如果是,我在这里找到了一个关于如何处理长字符串的解释:但是我的数据都不是长字符串,所以我看不出这是如何应用的

然后我开始想我可能需要创建一个字典,然后附加到它。 因此,我从上面删除了所有尝试,并尝试:

description=[]
说明.附加(制造零件)
制造零件到excel('pathToFile/output.xlsx')
这仍然给我相同的下线错误

我不确定出了什么问题,以及为什么我不能将变量
mfg_part、mfg_OEM、description
写入加载的Excel文件中各自的列中

如有任何提示,将不胜感激

完整的工作代码,打印到屏幕上如下:

导入时间
#需要Selenium与web元素交互
从selenium导入webdriver
从selenium.webdriver.common.by导入
从selenium.webdriver.support.ui导入WebDriverWait
从selenium.webdriver.support将预期的_条件导入为EC
从selenium.webdriver.common.keys导入密钥
#需要numpy/pandas与大型数据集交互
将numpy作为np导入
作为pd进口熊猫
进口itertools
#通过Excel文件从组件集合加载制造零件号
mfg_id_list=pd.read_excel(“C:/Users/James/Documents/Python Scripts/jupyterNoteBooks/ScrapingData/MasterQuoteTemplate.xls”)['Model']
#创建一个字典来存储产品和价格
#虽然下面的工作很好,但我们希望创建一个空的数据框架,以便以后可以输出到Excel
productInfo={}
chrome\u path=r“C:\Users\James\Documents\Python Scripts\jupyterNoteBooks\ScrapingData\chromedriver\u win32\chromedriver.exe”
driver=webdriver.Chrome(Chrome\u路径)
驱动程序。最大化_窗口()
驱动程序。获取(“https://www.tessco.com/login")
userName=“FirstName。SurName321123@gmail.com"
password=“PasswordForThis123”
#设置等待,等待元素加载到DOM中
wait10=WebDriverWait(驱动程序,10)
wait20=WebDriverWait(驱动程序,20)
wait30=WebDriverWait(驱动程序,30)
elem=wait10.until(EC.element可点击((By.ID,“userID”))
元素发送密钥(用户名)
elem=wait10.until(EC.element可点击((By.ID,“密码”))
要素发送密钥(密码)
#按登录按钮
驱动程序。通过xpath(“html/body/account login/div/div[1]/form/div[6]/div/button”)查找元素。单击()
对于制造商id列表中的i:
#展开搜索栏
searchBar=wait10.until(EC.element可点击((By.CSS_SELECTOR,“#searchBar输入”))
#在搜索栏中输入信息
#如果单元格不是空的
如果len(str(i))!=0:
searchBar.send_key(key.CONTROL,'a')
搜索栏。发送密钥(i)
驱动程序。通过\u css\u选择器('a.inputButton')查找\u元素。\u。单击()
时间。睡眠(5)
尝试:
#等待加载产品信息
products=wait10.until(EC.presence\u所有元素的位置((By.XPATH,//div[@class='CoveoResult']))
#isProductsThere=driver.find_element_by_xpath(“//div[@class='CoveoResult']”)
如果产品:
#迭代搜索结果中的所有产品,并将详细信息添加到字典中
对于产品中的产品:
#获取产品信息,如OEM、说明和零件号
productDescr=product.find_element_by_xpath(“.//a[@class='productName CoveoResultLink HIDDED xs'])。text
mfgPart=product.find_element_by_xpath(“.//ul[@class='unlistedinfo']”)。text.split('\n')[3]
mfgName=产品。通过标签名称(“img”)查找元素。获取属性(“alt”)
#有多个类,一些是“类销售”或其他。
#我们将通过CSS定位
price=product.find_element_by_css_selector(“div.price”).text.split('\n')[1]
#向字典添加详细信息
productInfo[mfgPart、mfgName、productDescr]=价格
#打印搜索到的产品信息
对于(制造零件、制造OEM、说明),productInfo.items()中的价格:
制造标识=制造零件分割(':')[1]
如果制造商id==i:
#这里是我将写入Excel文件的地方
#我在那里做了如上所述的尝试
打印('UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
打印(‘零件号:’,制造商id)
打印(“公司:”,制造商/原始设备制造商)
打印('说明:',说明)