복붙노트

[PYTHON] 다른 URL 데이터를 얻기 위해 url을 구문 분석하는 아름다운 수프

PYTHON

다른 URL 데이터를 얻기 위해 url을 구문 분석하는 아름다운 수프

세부 정보 페이지로 연결되는 URL 목록을 가져 오기 위해 URL을 구문 분석해야합니다. 그런 다음 해당 페이지에서 해당 페이지의 모든 세부 정보를 가져와야합니다. 세부 정보 페이지 URL이 정기적으로 증가 및 변경되지 않기 때문에이 방법으로해야하지만 이벤트 목록 페이지는 동일하게 유지됩니다.

원래:

example.com/events/
    <a href="http://example.com/events/1">Event 1</a>
    <a href="http://example.com/events/2">Event 2</a>

example.com/events/1
    ...some detail stuff I need

example.com/events/2
    ...some detail stuff I need

해결법

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

    1.

    import urllib2
    from BeautifulSoup import BeautifulSoup
    
    page = urllib2.urlopen('http://yahoo.com').read()
    soup = BeautifulSoup(page)
    soup.prettify()
    for anchor in soup.findAll('a', href=True):
        print anchor['href']
    

    그것은 당신에게 URL의 목록을 줄 것이다. 이제 이러한 URL을 반복하고 데이터를 파싱 할 수 있습니다.

  2. ==============================

    2.다음에 나오는 사람들을 위해 BeautifulSoup은 v3가 더 이상 업데이트되지 않으므로이 포스트에서 v4로 업그레이드되었습니다.

    다음에 나오는 사람들을 위해 BeautifulSoup은 v3가 더 이상 업데이트되지 않으므로이 포스트에서 v4로 업그레이드되었습니다.

    $ easy_install beautifulsoup4
    
    $ pip install beautifulsoup4
    

    파이썬에서 사용하려면 ...

    import bs4 as BeautifulSoup
    
  3. ==============================

    3.urllib2를 사용하여 페이지를 얻은 다음 아름다운 수프를 사용하여 링크 목록을 얻고 scraperwiki.com을 시도하십시오.

    urllib2를 사용하여 페이지를 얻은 다음 아름다운 수프를 사용하여 링크 목록을 얻고 scraperwiki.com을 시도하십시오.

    편집하다:

    최근 발견 : BeautifulSoup를 통해 lxml과 함께 사용

    from lxml.html.soupparser import fromstring
    

    BeautifulSoup보다 더 좋은 마일입니다. 생명의 은인 인 dom.cssselect ( 'your selector')를 할 수 있습니다. BeautifulSoup의 올바른 버전을 설치했는지 확인하십시오. 3.2.1은 대우를합니다.

    dom = fromstring('<html... ...')
    navigation_links = [a.get('href') for a in htm.cssselect('#navigation a')]
    
  4. from https://stackoverflow.com/questions/4462061/beautiful-soup-to-parse-url-to-get-another-urls-data by cc-by-sa and MIT license