td
태그 내의 텍스트를 찾으려면 python으로 스크립트를 작성했습니다. next sibling
은 td
태그이며 CSS 선택기와 함께 BeautifulSoup를 사용합니다. 만약 내가 스크립트를 실행, 나는 그것이 작동 찾으십시오. 그러나, 내가 동일한 라이브러리를 사용하여 lxml
을 사용하면 더 이상 작동하지 않습니다. 후자의 스크립트를 어떻게 작동시킬 수 있습니까? 감사. BS4 하나의 작업선택기를 사용하여 특정 텍스트를 찾는 방법은 무엇입니까?
html_content="""
<tr>
<td width="25%" valign="top" bgcolor="lightgrey" nowrap="">
<font face="Arial" size="-1" color="224119">
<b>Owner Address </b>
</font>
</td>
<td width="75%" valign="top" nowrap="">
<font face="Arial" size="-1" color="black">
1698 EIDER DOWN DR<br>SUMMERVILLE SC 29483
</font>
</td>
</tr>
"""
:
이
콘텐츠입니다from bs4 import BeautifulSoup
soup = BeautifulSoup(html_content,"lxml")
item = soup.select("td")[0].find_next_sibling().text
print(item)
결과 :
from lxml.html import fromstring
root = fromstring(html_content)
item = root.cssselect("td b:contains('Address')")[0].text
print(item)
:
1698 EIDER DOWN DRSUMMERVILLE SC 29483
아래의 스크립트는 주소 문자열을 찾을 수 있습니다
는 결과 :
from lxml.html import fromstring
root = fromstring(html_content)
item = root.cssselect("td b:contains('Owner Address')+td")[0].text
print(item)
결과 :
Traceback (most recent call last):
File "C:\Users\ar\AppData\Local\Programs\Python\Python35-32\new_line_one.py", line 28, in <module>
item = root.cssselect("td b:contains('Owner Address')+td")[0].text
IndexError: list index out of range
는 다음 형제를 찾을 때
Owner Address
그것은 작동하지 않습니다 (다음 형제를 찾으려면 "+"기호를 적용
다음 형제를 찾으려면 어떻게해야합니까? Btw, 난 단지 xss가 아닌 CSS 선택기입니다. 감사. CSS3의 선택 docs에서
올바른 방향으로 나를 안내해 주셔서 감사합니다. 대신 root.cssselect ("td : contains ('Owner Address') + td") [0] .text_content()'를 사용할 수 있습니다. – SIM