복붙노트

[PYTHON] BeautifulSoup - HTML 조각에있는 모든 링크를 수정합니까?

PYTHON

BeautifulSoup - HTML 조각에있는 모든 링크를 수정합니까?

HTML 문서의 모든 단일 링크를 수정할 수 있어야합니다. 나는 SoupStrainer를 사용해야한다는 것을 알고 있지만 그것을 구현하는 방법에 대해 100 % 긍정적이지는 않습니다. 누군가 나를 좋은 리소스로 안내하거나 코드 예제를 제공 할 수 있다면 대단히 감사하겠습니다.

감사.

해결법

  1. ==============================

    1.이런 식으로 뭔가를 할 수 있을까요? (필자는 불행히도 파이썬 인터프리터를 가지고 있지 않습니다.)

    이런 식으로 뭔가를 할 수 있을까요? (필자는 불행히도 파이썬 인터프리터를 가지고 있지 않습니다.)

    from BeautifulSoup import BeautifulSoup
    soup = BeautifulSoup('<p>Blah blah blah <a href="http://google.com">Google</a></p>')
    for a in soup.findAll('a'):
      a['href'] = a['href'].replace("google", "mysite")
    
    result = str(soup)
    
  2. ==============================

    2.

    from BeautifulSoup import BeautifulSoup
    soup = BeautifulSoup('<p>Blah blah blah <a href="http://google.com">Google</a></p>')
    for a in soup.findAll('a'):
        a['href'] = a['href'].replace("google", "mysite")
    print str(soup)
    

    이것은 루시드 (Lusid)의 해결책이지만, 파이썬 인터프리터가 없기 때문에 테스트를 할 수 없었고 몇 가지 오류가있었습니다. 방금 작업 상태를 게시하고 싶었습니다. 고맙습니다.

  3. ==============================

    3.나는 이것을 시도했고 효과가 있었다. 각각의 'href'를 매칭하기 위해 regexp를 사용하는 것을 피하는 것이 더 쉽다.

    나는 이것을 시도했고 효과가 있었다. 각각의 'href'를 매칭하기 위해 regexp를 사용하는 것을 피하는 것이 더 쉽다.

    from bs4 import BeautifulSoup as bs
    soup = bs(htmltext)
    for a in soup.findAll('a'):
        a['href'] = "mysite"
    

    bs4 워드 프로세서에서 확인하십시오.

  4. from https://stackoverflow.com/questions/459981/beautifulsoup-modifying-all-links-in-a-piece-of-html by cc-by-sa and MIT license