2017-01-11 3 views
0

이 그래서 난이 중복하지만 난 내 관련 답변을 찾을 수없는 경우 사과 내 첫 번째 게시물입니다. 하나 있으면 알려주세요. 나는 그것을 조사 할 것입니다.파이썬 검색 및 긁어 결과

버클리 임대료 상한을 찾기 위해 웹 사이트 (아래)를 긁어 모으려고하고 있는데, 내가 가지고있는 문제는 검색 상자에 주소를 삽입하고 다음 페이지에서 정보를 긁는 방법을 알아낼 수 없다는 것입니다. . 과거에는 내가 작업 한 URL이 검색 입력으로 변경되었지만이 웹 사이트에서는 변경되지 않았습니다. 나는 나의 가장 좋은 건 이후의 각 주소에 도착 request.sessionrequests.post을 정보를 긁어 bs4를 사용 될 거라 생각 했어요. 게시물이 전송 된 후

#Berkeley Rent Scrape 
from bs4 import BeauitfulSoup 
import sys 
import requests 
import openpyxl 
import pprint 
import csv 

#wb = openpyxl.load_workbook('workbook.xlsx', data_only=True) 
#sheet = wb.get_sheet_by_name('worksheet') 


props_payload={'aspnetForm':'1150 Oxford St'} 
URL = 'http://www.ci.berkeley.ca.us/RentBoardUnitSearch.aspx' 

s = requests.session() 
p = s.post(ULR, data = props_payload) 
soup = BeauitfulSoup(p.text) 
data = soup.find_all('td', class="gridItem") 

UPDATE 어떻게 새 웹 페이지에서 정보를 얻을 수 있습니까? 또는 다른 말로하면, request.post를 사용하기위한 프레임 워크는 무엇이며, URL이 변경되지 않으면 request.get 또는 bs4가 긁힐까요?

나는 다음과 같이 보일 것입니다 생각,하지만 난 거기에 어딘가에 GET 요청을 필요로하지만, URL이 변경되지 않는 경우 세션의 작동 방식을 이해하지 못하는거야.

나는 csv 파일 및 엑셀 시트에 대한 정보를 수출 할 것입니다,하지만 난 나중에 처리 할 수 ​​있습니다. 그냥 고기를 꺼내고 싶다.

도움 주셔서 감사합니다.

+1

게시자가 게시 한 솔루션의 실제 문제는 무엇입니까? –

+0

덕분에, 나는 설명 –

+1

이 질문은 너무 광범위에 붙들려 조금 얻었다. 스택 오버플로는 다른 사람들에게 자습서를 작성하거나 코드를 작성하도록 요청할 수있는 곳이 아니라 도움말이나 안내가 필요할 때 특정 질문을 할 수있는 곳입니다. 이 경우,이 코드를 작성하는 방법을 누군가에게 효과적으로 요구하는 것입니다. 코드 샘플을 기반으로 '데이터'에 필요한 것을 포함 할 수 있습니다 ... 그렇지 않습니까? 구체적으로 기재하십시오. – garrettmurray

답변

0

링크에서 볼 수 있듯이이 검색은 리디렉션을 통해 작동하지 않으므로 URL로 쿼리를 전달할 수 없습니다. ASP.NET 백엔드 (백엔드의 인증/유효성 검사로 인해 까다로울 수 있음)로 직접 작업하는 방법을 잘 모르겠습니다. 자동화 도구 (테스트 도구)가 도움이 될 수 있다고 생각합니다 (예 : PhantomJS 및/또는 CasperJS). 프로그래밍 된 방식으로 렌더링 된 웹 페이지를 제어 할 수 있으며 응답 후 입력을 받아서 데이터를 가져올 수 있습니다.

+0

둘 다 JavaScript로만 정확합니까? –

+0

PhantomJS는 독립 실행 형 응용 프로그램 (헤드리스 브라우저)이며 CasperJS는 JS 래퍼입니다. PhantomJS를 Python과 함께 사용할 수 있습니다. 예 http://stackoverflow.com/questions/13287490/is-there-a-way-to-use-phantomjs-in-python –