2017-10-16 13 views
0

내 목표는 모든 법원 케이스 번호를 가져 와서 Excel 폴더에 넣는 것입니다. 사건은 2 열에있는Python : 모든 tr 어린이의 두 번째 자녀 찾기

내 코드 : 메시지 :이 오류를

selenium.common.exceptions.InvalidSelectorException가 발생합니다

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) 

잘못된 선택 : 유효하지 않은 또는 불법적 인 선택이었다 지정된. 내가 2 열 TD에서 법원을 모두 수집해야

courtCases = driver.find_elements_by_css_selector('body > table:nth-child(3) > tbody > tr:nth-child(7) > td:nth-child(2) > font') 

:

내가 좋아 정확한 CSS 경로와 XPath를 넣어 법원 케이스를 얻을 수있었습니다 n 번째의 아이를 (2).

아무리해도 내 질문은 : 누구든지 내가 좋은 CSS를 선택하거나 xpath 모든 법정 날짜를 작성 도와 드릴까요?

html로하는 XPath를 통해 발견

<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">&nbsp;</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> 
+0

BeautifulSoup를 사용해 보셨습니까? 관련 질문은 https://stackoverflow.com/questions/23377533/python-beautifulsoup-parsing-table입니다. 당신은 pandas 데이터 프레임에 데이터를 작성한 다음 csv를 pandas.to_csv를 사용하여 쓸 수 있습니다. – skrubber

+0

예,하지만 OP가 XPath 표현식을 선호한다고 생각합니다. BeautifulSoup은 지원하지 않습니다 – Mangohero1

+0

xlml을 시도했는데 비슷한 문제가있었습니다. 여기에 : 가져 오기 요청 URL = raw_input을 ("에서 URL의를 추출하는 웹 사이트를 입력 :") R = requests.get ("HTTP : //"+ URL) 데이터 = r.text 수프 = BeautifulSoup (data) 다음 예제와 같이 r.text를 가져올 수 없습니다. url = raw_input ("URL을 추출 할 웹 사이트 입력 :") r = requests.get ("http : //" + url) URL이 필요하고 링크를 클릭하면 웹 페이지 만 볼 수 있습니다. 웹 페이지를 다시로드하는 경우 404 오류가 발생합니다 - 파일 또는 디렉토리를 찾을 수 없습니다. 열린 웹 페이지에서 데이터를 가져와야합니다. – John

답변

1

의 일부 : 모든 법원의 경우는 글꼴 크기 1에 얼마나

courtCases = driver.find_elements_by_xpath('//td[2]/font[@size="1"]') 
for courtCase in courtCases: 
    print(courtCase.text) 

알 수 있습니다. 이 속성을 생략하면 시간도 확보 할 수 있습니다.

+0

와우 !! 고맙습니다. 내 xpath 기술을 공부해야 해. 나는 다른 것들을 많이 시도했다. html/body/table [3]/*을 사용하여 법원에있는 모든 테이블을 얻을 수 있었고 거기에서 그것을 좁히려 시도했지만 운이 없으므로 CSS 선택기로 전환하려고했습니다. – John

+0

걱정할 필요가 없습니다.Chrome의 검사기 도구 사용법을 알고 있다면 쉽게 찾을 수 있습니다. :-) – Mangohero1

1

필요 이상으로 선택자가 조금 있습니다. 나는 그것을 아래로 줄일 수 있다는 것을 발견했다. 단지 XPath를 할 수있는,

td:nth-child(2) > font[size='1'] 

CSS 선택기는 빠르고 더 나은 XPath를보다 지원되지만 포함 된 텍스트로 요소의 위치를 ​​같은 몇 가지가있다.

+0

재미있는 접근 방식과 그 통찰력에 감사드립니다. 나는 CSS가 더 빠를 것이라고 생각했다. 단지 그것이 어떻게 만들어 졌는지 확신 할 수 없었다. +1 – Mangohero1