임의의 HTML 페이지에서 텍스트를 추출하려고합니다. 내가 통제 할 수없는 페이지 중 일부는 HTML이나 스크립트를 조작하기가 어렵다. 또한 공유 호스팅 환경에있어 파이썬 lib를 설치할 수는 있지만 서버에 원하는 것을 설치할 수는 없습니다.잘못된 HTML 페이지에서 텍스트를 추출하는 Python 전략
pyparsing 및 html2text.py도 형식이 잘못된 html 페이지에서 작동하지 않는 것 같습니다. BeautifulSoup로 여전히 작동하지 않는 경우
# Try using BeautifulSoup 3.0.7a
soup = BeautifulSoup.BeautifulSoup(s)
comments = soup.findAll(text=lambda text:isinstance(text,Comment))
[comment.extract() for comment in comments]
c=soup.findAll('script')
for i in c:
i.extract()
body = bsoup.body(text=True)
text = ''.join(body)
# if BeautifulSoup can't handle it,
# alter html by trying to find 1st instance of "<body" and replace everything prior to that, with "<html><head></head>"
# try beautifulsoup again with new html
, 그때 나는 첫번째 문자보고의 휴리스틱을 사용하여 리조트, 마지막 문자 :
예 URL은 http://apnews.myway.com/article/20091015/D9BB7CGG1.html
내 현재 구현은 다음과 같은 약이다 (코드 라인 # <처럼 보이는지 확인하고 라인의 샘플을 가져 와서 토큰이 영어 단어 또는 숫자인지 확인하십시오. 토큰 중 몇 개만 단어 나 숫자 인 경우, 줄은 코드입니다.
컴퓨터를 사용하여 각 행을 검사 할 수는 있지만 비용이 약간 들었고 교육을해야 할 것입니다. (물론 자상 학습 기계에 대해 많이 알지 못하므로) 물론 작성하십시오.
모든 조언, 도구, 전략이 가장 환영받을 것입니다. 또한 나는 그 코드의 후반부가 다소 혼란 스럽다는 것을 알고 있습니다. 왜냐하면 코드를 포함하고있는 라인이 생기면 라인에 실제 영어 텍스트가 약간 있더라도 현재 전체 라인을 버리게됩니다.
글쎄, 솔루션 내구성, 당신이 링크 된 뉴스 기사는 훌륭한 읽을 거리였습니다. 어떤 사람들? :) –
@ 레시, 나는 또한 형식이 잘못된 사람들이라고 생각합니다. – Johnny4000