Python,如何将csv模块与selenium一起使用

时间:2016-02-11 14:12:34

标签: python csv selenium

有人可以帮我吗?尝试导出到csv文件(将其保存在C:\ test \,文件名为今天的日期)我使用Selenium选择的数据。

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个条目):

        </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>

1 个答案:

答案 0 :(得分:0)

您可以使用pyquery(或lxml,beautfifulsoup等)尝试这样的事情

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")})