: https://www.investing.com/economic-calendar/파이썬 - lxml.html 정규식으로 HTML 테이블 요소를 가져옵니다 나는 다음 웹 사이트의 다음과 같은 요소를 얻기 위해 노력하고
내가 사용하고 파이썬 요청 및 lxml.html :
을import requests
import lxml.html
payload= {
'country[]': [25,32],
'limit_from': 0,
'submitFilters': 1,
'timeFilter': 'timeRemain',
'currentTab': 'today',
'timeZone': 55}
headers={'User-Agent': 'Mozilla/5.0','X-Requested-With': 'XMLHttpRequest'}
r=requests.post("https://www.investing.com/economic-calendar/",
data=payload, headers=headers)
html = lxml.html.fromstring(r.text)
results = html.xpath("//table[@id='economicCalendarData']//tr")
목록의 세 번째 항목이 results
인 것을 고려하십시오. "actual"열의 요소는 공통적으로 td의 클래스 속성에서 접미어 "actual"을가집니다. 그러나 그 이전의 int와 글꼴 스타일은 다양합니다. 그래서 내 xpath 표현식에서 "실제"접미사를 찾는 정규식을 사용하고 싶습니다.
나는
results[3].find(".//td[contains(@class,'actual')]")
및
results[3].find(".//td[substring(@class, string-length(@class)-6)='actual']")
SyntaxError: invalid predicate
을 반환합니다.
아무도 올바른 xpath 정규 표현식을 찾을 수 있도록 도와 줄 수 있습니까 td
?