Python,如何与selenium一起使用csv模块
有人能帮我吗?尝试将我用Selenium选择的数据导出到csv文件(保存在C:\test\中,文件名为todays date)Python,如何与selenium一起使用csv模块,python,csv,selenium,Python,Csv,Selenium,有人能帮我吗?尝试将我用Selenium选择的数据导出到csv文件(保存在C:\test\中,文件名为todays date) from selenium import webdriver from selenium.webdriver.support.ui import Select path_to_chromedriver = 'C:\python34\chromedriver\chromedriver.exe' browser = webdriver.Chrome(executable_
from selenium import webdriver
from selenium.webdriver.support.ui import Select
path_to_chromedriver = 'C:\python34\chromedriver\chromedriver.exe'
browser = webdriver.Chrome(executable_path = path_to_chromedriver)
url = 'http://www.ssss.com/queries_pub.php'
browser.get(url)
browser.find_element_by_xpath("//select[@name='query_choice']/option[text()='60 days']").click()
browser.find_element_by_css_selector('input[type=\"submit\"]').click() # working to press submit
如何将上述代码与CSV模块集成?现在chrome打开,进入一个选择下拉菜单的页面,然后在一个新页面中有一个带有xpath/*[@id=“page1”]/table/tbody的表。多谢各位
html表如下所示(本例中只有2个条目):
名称访问日期00112015-07-29 00:00:00.00000022015-11-23 00:00:00.000
您可以使用pyquery(或lxml、beautfifulsoup等)尝试类似的方法
您能否共享表格的HTML代码和所需的输出?谢谢。@alecxe,很遗憾,我无法共享,因为这是一个内部网页面。不确定是否有帮助,但表的XPATH是/*[@id=“page1”]/table/tbody。它包含两列和几行。所以csv也应该是这样的,一个包含两列和多行的表,其中第一行作为标题。非常感谢。只要我知道xpath不能返回2d排列,您最多只能得到一个列表。我们至少需要包含虚拟数据的表的HTML结构,以便能够定义xpath和将结果重新组织为元组列表的方法,作为CSV模块的输入。@GermanRosales我用HTML表更新了问题。感谢您的支持。我正在使用python 3.4。。所以我没有pyquery模块:/你能简单地解释一下如何使用beautfifulsoup吗?再次感谢。很抱歉,我现在无法重写它。您只需在beautifulsoup中选择.maskAdmin并在各行中循环,将{name:first td,access_date:second td}写入csv dictWriter,如果您以后能在这方面帮助我,那将是非常棒的。。正在阅读一些论坛,但没有通过bsouo做到:/
</td><td>
<input type='submit' value='Get Results'>
</td>
</tr>
</table>
</form><div id="loader">
<img src="img/load.gif">
</div><div id = "page1" style="display:none;"><table class='maskAdmin' align='left'>
<tr><th width='200px' align='left'>NAME</th><th width='200px' align='left'>ACCESSDATE</th></tr><tr><td width='200px' align='left'>0011</td><td width='200px' align='left'>2015-07-29 00:00:00.000</td></tr><tr><td width='200px' align='left'>0002</td><td width='200px' align='left'>2015-11-23 00:00:00.000</td></tr></table><form action='queries_export.php' method='POST'>
<table>
<tr>
<td>
<input type='submit' name='export' value='Export'>
<input type='hidden' name='export_value' value='DEVICENAME;ACCESSDATE;
0011;2015-07-29 00:00:00.000;
0002;2015-11-23 00:00:00.000;
'>
</td>
</tr>
</table>
</form></div></div></div></div>
import csv
import pyquery as pq
with open('names.csv', 'w') as csvfile:
html = #page source
fieldnames = ['name', 'access_date']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
for row in pq(html)(".maskAdmin tr:gt(0)"):
writer.writerow({'name': pq(row)("td").eq(0).text().encode("utf-8"), 'access_date': pq(row)("td").eq(1).text().encode("utf-8")})