2017-12-07 3 views
0

문서에 대한 링크가 여러 페이지를 스크랩하려고합니다. 그래서 페이지 번호를 변경하려면 문자열을 설정합니다 (아래 예제에서 페이지 1에서 6 페이지까지). - URL에 문자열을 반복합니다.하지만 아름다운 스프가있는 링크를 구문 분석 할 때 - 높은 범위 만 얻습니다. ie 나는 이전 페이지 전부를 overwite. 6 페이지와여러 페이지 긁기 아름다운 스프

코드 ...

from requests import get 
from bs4 import BeautifulSoup 
pages = [str(i) for i in range(1,6)] 
for page in pages: 
    response = get('http://www.sedar.com/FindCompanyDocuments.do?lang=EN&page_no=' + page + '&company_search=All+%28or+type+a+name%29&document_selection=24&industry_group=A&FromDate=01&FromMonth=01&FromYear=2017&ToDate=06&ToMonth=12&ToYear=2017&Variable=DocType') 
page_html = BeautifulSoup(response.text, 'html.parser') 

for link in page_html.find_all('a'): 
    print(link.get('title')) 

i는 약 600 링크를 기다리고 있었다 -하지만 내가 말한대로, 나는 단지 수 범위의 마지막 부분을 얻을 것으로 보인다. (BTW - 출력 링크 내가 나중 단계에서 HTTP 주소 접두사 것입니다 벌금과 올바른 내가, 메신저 추측 초보자으로하지 찾는 결핍 내가 본 havent 한 간단한 soltuion이 (가 :))

None 
&docClass=24&issuerNo=00040114&issuerType=03&projectNo=02637890&docId=4133021 
None 
&docClass=24&issuerNo=00005620&issuerType=03&projectNo=02700766&docId=4219364 
None 
&docClass=24&issuerNo=00005620&issuerType=03&projectNo=02700766&docId=4219365 

답변

0
.

당신은 마지막 세 줄을 들여 써야하므로 반복의 일부분이됩니다. 모든 반복 작업이 완료된 후 마지막 부분 만 처리했습니다.

for page in pages: 
    response = get('http://www.sedar.com/FindCompanyDocuments.do?lang=EN&page_no=' + page + '&company_search=All+%28or+type+a+name%29&document_selection=24&industry_group=A&FromDate=01&FromMonth=01&FromYear=2017&ToDate=06&ToMonth=12&ToYear=2017&Variable=DocType') 
    page_html = BeautifulSoup(response.text, 'html.parser') 

    for link in page_html.find_all('a'): 
     print(link.get('title')) 
+1

정말 고마워. 단순함 - (나는 이것에 관해 신제품이었다라고 말했다!!) –