【发布时间】:2017-10-16 17:14:07
【问题描述】:
我的目标是获取所有的法庭案件编号并将它们放入 Excel 文件夹中。案例在第2列
我的代码:
courtCases = driver.find_elements_by_css_selector('body > table:nth-child(3) > tbody > tr:nth-child* > td:nth-child(2)')
for courtCase in courtCases:
print(courtCase.text)
这会引发错误
selenium.common.exceptions.InvalidSelectorException:消息:无效选择器:指定了无效或非法的选择器。
我可以通过输入确切的 css 路径和 xpath 来获得诉讼,例如:
courtCases = driver.find_elements_by_css_selector('body > table:nth-child(3) > tbody > tr:nth-child(7) > td:nth-child(2) > font')
我需要在第 2 列 td:nth-child(2) 中收集所有球场。
无论如何我的问题是:谁能帮我写一个好的 css-selector 或 xpath 来获取所有的法庭日期?
一些html
<html>
<head>
<title>Wejis - Dayton Municipal Court</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<table width="750" border="0">
<tr>
<td width="185"><font color="#003399" size="2" face="Verdana, Arial, Helvetica, sans-serif">Run
Date: 10/16/2017 </font></td>
<td width="380"><div align="center">
<p><strong><font color="#003399" size="4" face="Verdana, Arial, Helvetica, sans-serif">Housing
Docket Report</font></strong></p>
<p><strong><font color="#003399" size="2" face="Verdana, Arial, Helvetica, sans-serif">Dayton
Municipal Court</font></strong></p>
</div></td>
<td width="185"><div align="right"><font color="#003399" size="2" face="Verdana, Arial, Helvetica, sans-serif">Run
Time: 12:28 PM</font></div></td>
</tr>
</table>
<table width="750">
<tr><td colspan="4"> </td></tr>
<tr>
<td width="250"><strong><font color="#003399" size="2" face="Verdana, Arial, Helvetica, sans-serif">Court Date: September 20, 2017</font></strong></td>
<td width="140"><strong><font color="#003399" size="2" face="Verdana, Arial, Helvetica, sans-serif">All Sessions</font></strong></td>
<td width="130"><div align="center"><strong><font color="#003399" size="2" face="Verdana, Arial, Helvetica, sans-serif">Courtroom 3A</font></strong></div></td>
<td width="220"><div align="right"><strong><font color="#003399" size="2" face="Verdana, Arial, Helvetica, sans-serif">Judge Deirdre E Logan</font></strong></div></td>
</tr>
</table>
<table width="750" border="0">
<tr>
<td colspan="5"><hr></td>
</tr>
<tr>
<td colspan="2"><font color="#003399" size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Housing Trial</strong></font></td>
<td colspan="3"><font color="#003399" size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong> 8:30AM </strong></font></td>
</tr>
<tr>
<td width="140"><strong><font color="#003399" size="1" face="Verdana, Arial, Helvetica, sans-serif">Defendant Name</font></strong></td>
<td width="120"><strong><font color="#003399" size="1" face="Verdana, Arial, Helvetica, sans-serif">Case Number</font></strong></td>
<td width="240"><strong><font color="#003399" size="1" face="Verdana, Arial, Helvetica, sans-serif">Charges</font></strong></td>
<td width="115"><strong><font color="#003399" size="1" face="Verdana, Arial, Helvetica, sans-serif">Attorney</font></strong></td>
<td width="115"><strong><font color="#003399" size="1" face="Verdana, Arial, Helvetica, sans-serif">Location</font></strong></td>
</tr>
<tr>
<td valign="top"><font color="#003399" size="1" face="Verdana, Arial, Helvetica, sans-serif">Rosal, Jorge</font></td>
<td valign="top"><font color="#003399" size="1" face="Verdana, Arial, Helvetica, sans-serif">2017-CRM-005695</font></td>
<td valign="top"><font color="#003399" size="1" face="Verdana, Arial, Helvetica, sans-serif">MAINTAINING EXTERIOR<br></font></td>
<td valign="top"><font color="#003399" size="1" face="Verdana, Arial, Helvetica, sans-serif"></font></td>
<td valign="top"><font color="#003399" size="1" face="Verdana, Arial, Helvetica, sans-serif">1347 Kingsley </font></td>
</tr>
<tr>
<td colspan="2"><font color="#003399" size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Criminal Court Trial In Jail</strong></font></td>
<td colspan="3"><font color="#003399" size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong> 9:30AM </strong></font></td>
</tr>
<tr>
<td width="140"><strong><font color="#003399" size="1" face="Verdana, Arial, Helvetica, sans-serif">Defendant Name</font></strong></td>
<td width="120"><strong><font color="#003399" size="1" face="Verdana, Arial, Helvetica, sans-serif">Case Number</font></strong></td>
<td width="240"><strong><font color="#003399" size="1" face="Verdana, Arial, Helvetica, sans-serif">Charges</font></strong></td>
<td width="115"><strong><font color="#003399" size="1" face="Verdana, Arial, Helvetica, sans-serif">Attorney</font></strong></td>
<td width="115"><strong><font color="#003399" size="1" face="Verdana, Arial, Helvetica, sans-serif">Location</font></strong></td>
</tr>
<tr>
<td valign="top"><font color="#003399" size="1" face="Verdana, Arial, Helvetica, sans-serif">Joyner, Melissa</font></td>
<td valign="top"><font color="#003399" size="1" face="Verdana, Arial, Helvetica, sans-serif">2017-CRB-000784</font></td>
<td valign="top"><font color="#003399" size="1" face="Verdana, Arial, Helvetica, sans-serif">DRUG ABUSE INSTRUMENT<br>DRUG PARAPHERNALIA/USE OR POSS<br></font></td>
<td valign="top"><font color="#003399" size="1" face="Verdana, Arial, Helvetica, sans-serif">Jenn A. Cunningham-Minnick</font></td>
<td valign="top"><font color="#003399" size="1" face="Verdana, Arial, Helvetica, sans-serif">1401 Harshman RD</font></td>
</tr>
<tr>
<td valign="top"><font color="#003399" size="1" face="Verdana, Arial, Helvetica, sans-serif">Joyner, Melissa</font></td>
<td valign="top"><font color="#003399" size="1" face="Verdana, Arial, Helvetica, sans-serif">2017-CRM-000775</font></td>
<td valign="top"><font color="#003399" size="1" face="Verdana, Arial, Helvetica, sans-serif">LITTERING IN PARK<br></font></td>
<td valign="top"><font color="#003399" size="1" face="Verdana, Arial, Helvetica, sans-serif"></font></td>
<td valign="top"><font color="#003399" size="1" face="Verdana, Arial, Helvetica, sans-serif">1401 Harshman RD</font></td>
</tr>
【问题讨论】:
-
您尝试过使用 BeautifulSoup 吗?一个相关的问题在这里:stackoverflow.com/questions/23377533/…。您可以将数据写入 pandas 数据帧,然后使用 pandas.to_csv 写出 csv
-
是的,但我认为 OP 偏爱 XPath 表达式,我相信 BeautifulSoup 不支持
-
我尝试了 xml 并且遇到了类似的问题: import requests url = raw_input("Enter a website to extract the URL's from:") r = requests.get("http://" + url) data = r.text soup = BeautifulSoup(data) 我无法获得示例中的 r.text,因为要获取: url = raw_input("Enter a website to extract the URL's from:") r = requests.get( "http://" +url) 我需要 url,我只能通过点击链接访问网页。如果重新加载网页会出现 404 错误——找不到文件或目录。我需要从我打开的网页中获取数据
-
要重现我正在获取数据的页面,请转到 wejis.com/pa/qhousingdocket.cfm 并从下拉菜单中单击 9/20/2017,然后单击生成报告。
标签: python selenium xpath css-selectors