2013-12-13 2 views
2

이 코드는 나를 이틀 동안 곤란하게 만들었으며, 나는이 코드 블록을 최종적으로 좁혔다 고 생각한다. 누구나이 문제를 해결하는 방법을 말해 줄 수 있고, 왜 그것이 일어나고 있는지는 대단 할 것입니다.Python Link to File Iterator 반복하지 않음

import urllib2 

GetLink = 'http://somesite.com/search?q=datadata#page' 
holder = range(1,3) 

for LinkIncrement in holder: 
    h = GetLink + str(LinkIncrement) 
    ReadLink = urllib2.urlopen(h) 
    f = open('test.txt', 'w') 

    for line in ReadLink: 
     f.write(line) 

    f.close() 
    main() #calls function main that does stuff with the file 
    continue 

문제는 내가 제대로 결과 인쇄 아래를 할 경우에만 'http://somesite.com/search?q=datadata#page'에서 데이터를 쓸 것입니다.

for LinkIncrement in holder: 
    h = GetLink + str(LinkIncrement) 
    print h 

복사하는 링크는 실제로 이런 방식으로 증가하며 복사 및 붙여 넣기를 통해 URL을 열 수 있습니다. 또한, 나는 이것을 루프 while으로 시도했지만, 항상 같은 결과를 얻는다.

아래 코드는 증가 된 URL이 /search?q=datadata#page1, /search?q=datadata#page2/search?q=datadata#page3 인 3 개의 탭을 엽니 다. 그냥 내 코드에서 작동하도록 만들 수 없습니다.

import webbrowser 
import urllib2 
h = '' 
def tab(passed): 
    url = passed 
    webbrowser.open_new_tab(url + '/') 

def test(): 

    g = 'http://somesite.com/search?q=datadata#page' 
    f = urllib2.urlopen(g)  
    NewVar = 1 
    PageCount = 1 

    while PageCount < 4: 

      h = g + str(NewVar)     
      PageCount += 1 
      NewVar += 1 
      tab(h) 
test() 

Falsetru에게 감사드립니다. 웹 사이트는 첫 번째 페이지 이후의 모든 페이지에 대해 json을 사용하고있었습니다.

답변

2

URL에서 # (fragment identifier) 이후의 부분은 웹 서버로 전달되지 않습니다. 서버는 Framents 식별자 이전의 파트가 동일하기 때문에 동일한 컨텐츠로 응답합니다.

#something은 (자바 스크립트) 브라우저에서 처리됩니다. 자바 스크립트에서 어떤 일이 발생하는지 확인해야합니다.

+0

나는 이것이 OP의 [이전 질문] (http://stackoverflow.com/questions/20530457/python-url-stepping-returns-only-first-page-results)에 대한 답변 일 수도 있다고 생각합니다. 이번에는 실제로'#'이라고 확신합니다. 그렇다면 다음 질문이 무엇인지 알기를 기대합니다. :) –

+0

그리고 각 루프에서'test.txt' 파일을 덮어 씁니다 OP가 원하는 것 일 수도 있고 아닐 수도 있습니다. – Matthias

+1

@Matthias 좋은 장소 - 나는 추측하고 있지 않다 ~ ~) –