Here is the Website I am trying to scrape http://livingwage.mit.edu/Python-> Beautifulsoup-> Webscraping-> URL (1 ~ 53)에 걸쳐 반복 및 저장 결과
특정 URL은
http://livingwage.mit.edu/states/01
http://livingwage.mit.edu/states/02
http://livingwage.mit.edu/states/04 (For some reason they skipped 03)
...all the way to...
http://livingwage.mit.edu/states/56
에서 그리고 이러한 URL 각각에, 내가 필요하다 두 번째 테이블의 마지막 행 :
예 http://livingwage.mit.edu/states/01
에 대한 연간 소득 필수 세전 $ 20,260 $ 4만2천7백86 $ 51,642 $ 64,767 $ 34,325 $ 4만2천3백5 $ 4만7천3백45 $ 53,206 $ 34,325 $ 47,691 $ 5만6천9백34 $ 66,997
욕망 출력 :
알라바마 $ 20,260 $ 4만2천7백86 $ 51,642 $ 64,767 $ 34,325 $ 4만2천3백5 $ 4만7천3백45 $ 53,206 $ 34,325 $ 47,691 $ 5만6천9백34 $ 66,997
알래스카에게 $ 24,070 $ 4만9천2백95 $ 6만9백33 $ 79,871 $ 38,561 $ 47,136 $ 52,233 $ 61,531 $ 38,561 $ 54,433 $ 66,316 $ 82,403
...
...
와이오밍 $ 2만8백67 $ 42,689 $ 52,007 $ 65,892 $ 34,988 $ 41,887 $ 4만6천9백83 $ 5만3천5백49 $ 34,988 $ 47,826 $ 5만7천3백91 장난 2 시간 후 $ 6만8천4백24
, 이것은 내가 (나는 초보자입니다) 지금까지 무엇을 가지고 :
import requests, bs4
res = requests.get('http://livingwage.mit.edu/states/01')
res.raise_for_status()
states = bs4.BeautifulSoup(res.text)
state_name=states.select('h1')
table = states.find_all('table')[1]
rows = table.find_all('tr', 'odd')[4:]
result=[]
result.append(state_name)
result.append(rows)
내가 파이썬 콘솔에서 STATE_NAME 행을 볼 때 그것은 HTML 요소를 줘
[<h1>Living Wag...Alabama</h1>]
및
[<tr class = "odd... </td> </tr>]
문제 1 :이 내가 원하는 출력에서 원하는 일을하지만, 어떻게 오히려 위와 같이 HTML보다 문자열 형식으로 파이썬이 나에게주고받을 수 있나요?
문제점 2 : request.get (url01 - url56)을 어떻게 반복합니까?
도움 주셔서 감사합니다.
내 코드에서 행 변수를 얻는보다 효율적인 방법을 제공 할 수 있다면, 내가 얻은 방법이 매우 Pythonic이 아니기 때문에, 크게 감사하겠습니다.
대단히 고마워,이게 내가 원하는거야. 자, 어떻게 이것을 내 질문에 대한 대답으로 받아 들일 수 있습니까? –
@OmiSlash. 걱정 마라, 네가 알아 냈어. –
지난 2 일 동안 코드를 연구하는 데 시간을 썼으며, 그 코드가 내 머리 위로 바로 향이났다. 남자에게 물고기를주는 말은 하루 먹이를주고, 물고기를 가르치며, 평생 동안 먹이를줍니다. 요청 문서를 읽고 기본 HTML을 이해합니다. 나는 물고기를 받았으며, 항상 웹 스크랩으로 도움을 청하기 위해 다시 돌아 오기를 원하지 않는다면 (그리고 당신은 의로운 점을 얻었을 것입니다.) 생각과 워크 플로우 과정을 진행할 수 있습니까? 이 코드를 만들 때? –