2010-08-09 2 views
2

특정 문자열 'abc123123'이 들어있는 페이지에서 모든 테이블 행을 가져와야합니다.beautifulSoup를 사용하여 문자열이 들어있는 테이블 행을 모두 얻으려고하십시오.

문자열이 TD 안에 있지만 'abc123123'이 내부에있는 경우 전체 TR이 필요합니다.

userrows = s.findAll('tr', contents = re.compile('abc123123')) 

나는 내용이 쓰기 속성입니다 있는지 확실하지 않습니다 :

나는이 시도.

<tr> 
    <td> 
    </td> 
    <td><table>.... abc123123 </table><tr> 
    .. 
</tr> 
<tr> 
.. 
</tr> 
.. 
.. 

답변

4

아니, 지정된 사람 (name, attrs, recursive, text, limit) 모든 넘어 추가 키워드 인수 당신이 찾고있는 태그의 속성 참조 :

내 HTML은 같은 것을 보인다.

동시에 nametext를 검색 할 수 없습니다 (당신이 text를 지정하는 경우, 기지국은 name을 무시) 그래서 당신은, 예를 별도의 호출이 필요합니다 여기

allrows = s.findAll('tr') 
userrows = [t for t in allrows if t.findAll(text=re.compile('abc123123'))] 

내가 지능형리스트를 사용하고 있습니다 왜냐하면 나는 findAll 그 자체로서 당신이 관련 태그 객체의 목록을 원한다고 생각하기 때문입니다.

+0

또는 t.findAll (..)이 아니더라도 그냥 할 수 있습니다. 지금 시도해보십시오! – Blankman

+0

괜찮아요, 내가 찾고있는 텍스트가 실제로 href 태그 안에 있기 때문에 ... hmm – Blankman

+0

@Blankman, HTML에'href' 태그가 없습니다. href 속성이' 태그. 이 경우, 두 번째 명령문에서't.findall ('a', href = re.compile ('abc123123'))'을 사용하십시오. 물론 –

관련 문제