2013-12-13 3 views
2

Это меня уже несколько дней беспокоит, и я верю, что я, наконец, сузил его до этого блока кода. Если кто-нибудь скажет мне, как это исправить, и почему это происходит, было бы здорово.Python Ссылка на файл Итератор не итерации

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, но всегда получаю те же результаты.

Приведенный ниже код открывает 3 вкладки с увеличивающимися URL-адресами /search?q=datadata#page1, /search?q=datadata#page2 и /search?q=datadata#page3. Просто не могу заставить его работать в моем коде.

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 обрабатывается браузером (javascript). Вам нужно посмотреть, что происходит в javascript.

+0

Я думаю, что это также может быть ответом на предыдущий вопрос OP (http://stackoverflow.com/questions/20530457/python-url-stepping-returns-only-first-page-results) до тех пор, пока на этот раз мы уверены, что на самом деле есть '#' ... Если это так, я думаю, мы знаем, что следующий вопрос будет ... :) –

+0

И файл 'test.txt' перезаписывается в каждом цикле который может или не может быть тем, чего хочет OP. – Matthias

+1

@ Matthias хорошее место - я догадываюсь нет; ~) –

Смежные вопросы