python
  • beautifulsoup
  • scraper
  • 2014-10-20 4 views 1 likes 
    1

    2 개의 데이터를 추출하려고합니다 : 1) 옵션 요소의 "value"속성 값 (예 : "01000.html"). 2) <option></option> 태그 (즉, "Alabama") 내에있는 문자열. 나는 미국 인구 QFD 페이지의 드롭 다운 메뉴 (이 옵션 자체가 요소)에서 국가의 목록을 추출하는 url = 'http://quickfacts.census.gov/qfd/states/' page = urllib2.urlopen(url) soup = BeautifulSoup(page) state_list = soup.find_all("option")BeautifulSoup의 ResultSet리스트 객체 조작하기

    를 사용하여 생성 된 ResultSet 목록 객체에 대한 제한된 정보가있다.

    큰 그림, 나는 미국의 모든 카운티를 간단한 i 카운터를 사용하여 반복하려고했으나 분명히 카운티와 주에는 동일한 번호가 매겨져 있지 않습니다. 따라서 나는 "상태 (문자열)"에 대한 "값"(URL의 일부가 됨) 속성을 반복하기 위해 이러한 옵션 목록을 작성하려고합니다.

    state_list 
    
    [<option value="01000.html">Alabama</option>, 
    <option value="02000.html">Alaska</option>, 
    <option value="04000.html">Arizona</option>, 
    <option value="05000.html">Arkansas</option>, 
    <option value="06000.html">California</option>, 
    <option value="08000.html">Colorado</option>, 
    <option value="09000.html">Connecticut</option>, 
    <option value="10000.html">Delaware</option>, 
    <option value="11000.html">District of Columbia</option>, 
    <option value="12000.html">Florida</option>, 
    <option value="13000.html">Georgia</option>, 
    <option value="15000.html">Hawaii</option>, 
    <option value="16000.html">Idaho</option>, 
    <option value="17000.html">Illinois</option>, 
    <option value="18000.html">Indiana</option>, 
    <option value="19000.html">Iowa</option>, 
    <option value="20000.html">Kansas</option>, 
    <option value="21000.html">Kentucky</option>, 
    <option value="22000.html">Louisiana</option>, 
    <option value="23000.html">Maine</option>, 
    <option value="24000.html">Maryland</option>, 
    <option value="25000.html">Massachusetts</option>, 
    <option value="26000.html">Michigan</option>, 
    <option value="27000.html">Minnesota</option>, 
    <option value="28000.html">Mississippi</option>, 
    <option value="29000.html">Missouri</option>, 
    
    (etc...) 
    
    +2

    빌 Letson 당신이 묻는 질문에 대한 정확한 답을 가지고 있지만, 이러한 [FIPS 코드]입니다 (http://en.wikipedia.org/wiki/Federal_Information_Processing_Standard_state_code). [이 EPA 페이지] (http://www.epa.gov/enviro/html/codes/state.html)에서 코드를 가져 와서 끝에 '000'을 추가하면 주 코드가 생깁니다. (동일한 EPA 페이지는 각 주마다 마지막 3 자리 숫자가있는 주별 페이지로 연결됩니다 (예 : 29 (Missouri) + 019 (Boone County) = 29019 (Boone County, Missouri)). ] (https://gist.github.com/myersjustinc/1233434) 몇 년 전에 도움이 될 수 있습니다. – myersjustinc

    +0

    와우, 굉장해. 감사합니다. – d8aninja

    답변

    3

    사전과 같은 태그 속성을 추출하고 .text 속성을 사용하여 텍스트에 액세스 할 수 있습니다.

    for state in state_list: 
        print state['value'].split(".")[0], state.text 
    
    +0

    하루 동안 생각한 후에 프로그래밍에 익숙하지 않은 사람이라면 정말 좋은 대답입니다. 간결하고 정확하게 할 수있을 것이라고 생각했던 것입니다. 항상 KISS 원칙을 처음 적용하도록 상기시켜줍니다. – d8aninja

     관련 문제

    • 관련 문제 없음^_^