반응형
xpath를 사용하여 크롤링하는 HTML 웹 페이지가 있습니다. 특정 노드의 etree.tostring
은 다음 문자열을 제공합니다.
<script>
<!--
function escramble_758(){
var a,b,c
a='+1 '
b='84-'
a+='425-'
b+='7450'
c='9'
document.write(a+c+b)
}
escramble_758()
//-->
</script>
escramble_758 ()
의 출력이 필요합니다. 모든 것을 파악하기 위해 정규식을 작성할 수 있지만 코드를 깔끔하게 유지하고 싶습니다. 가장 좋은 대안은 무엇입니까?
다음 라이브러리를 압축하고 있지만 정확한 솔루션을 찾지 못했습니다. 그들 대부분은 브라우저를 에뮬레이트하려고 시도하여 일을 느리게 만듭니다.
편집 : 예가 좋을 것입니다 .. (베어 본도 가능합니다)
해결 방법
import PyV8
ctx = PyV8.JSContext()
ctx.enter()
js = """
function escramble_758(){
var a,b,c
a='+1 '
b='84-'
a+='425-'
b+='7450'
c='9'
document.write(a+c+b)
}
escramble_758()
"""
print ctx.eval(js.replace("document.write", "return "))
또는 모의 문서 객체를 만들 수 있습니다.
class MockDocument(object):
def __init__(self):
self.value = ''
def write(self, *args):
self.value += ''.join(str(i) for i in args)
class Global(PyV8.JSClass):
def __init__(self):
self.document = MockDocument()
scope = Global()
ctx = PyV8.JSContext(scope)
ctx.enter()
ctx.eval(js)
print scope.document.value
참조 페이지 https://stackoverflow.com/questions/10136319
반응형
'파이썬' 카테고리의 다른 글
파이썬 이전 및 다음 값에도 액세스하는 Python 루프 (0) | 2021.02.20 |
---|---|
파이썬 Python에서 다른 목록으로 목록을 인덱싱하려면 어떻게해야합니까? (0) | 2021.02.20 |
파이썬 다운로드 한 PIP 패키지를 캐시하는 방법 (0) | 2021.02.20 |
파이썬 : None을 빈 문자열로 변환하는 가장 관용적 인 방법? (0) | 2021.02.20 |
파이썬 Python을 사용하여 Word 문서를 만들려면 어떻게해야합니까? (0) | 2021.02.19 |
댓글