Использование списка, заполненного запросом URLLIB на веб-сайте.Не могу понять, как увеличить список на 1 каждый раз, когда он проходит цикл while - PullRequest
0 голосов
/ 01 января 2019

Я рассмотрел другие подобные проблемы.Я думаю, что мой отличается тем, что я сначала захожу на известный веб-сайт, а затем беру ссылки на отдельные файлы и сохраняю их в список, а затем извлекаю файлы один за другим.Я создаю код, который будет принимать URL-адрес веб-сайта, а затем сканировать этот веб-сайт на наличие необходимых ссылок для массовой загрузки файлов вместо того, чтобы нажимать на каждую ссылку и загружать по одной для повторяющейся задачи на конец месяца.Эти тематические ссылки сохраняются в список univ_list.Я использую цикл while.

Для этого месяца необходимо загрузить 164 ссылки.Я использую объединение с базовым URL, http://www.linksneeded.com/ + часть файла (поскольку каждый файл имеет свой фрагмент головоломки, например, Это первый файл .xls), поэтому он будет выглядеть следующим образом: http://www.linksneeded.com/This - это первый файл .xls.Начало полного местоположения каждого файла остается неизменным, пока меняются отдельные имена файлов, которые я сохранил в univ_list.Мне нужен первый проход для использования univ_list [1], второй для использования univ_list [2] ..... вплоть до 164 (и это число меняется для сайта и каждого месяца) univ_list [164].

Я попытался установить другую переменную и выполнить + = 1 для каждого цикла, но получил неверный синтаксис для этой попытки: print (page_retrieve + univ_list + = 1).Я установил его для печати, чтобы проверить вывод.

from urllib.request import urlopen
from bs4 import BeautifulSoup
import requests
import os

univ_list.clear()

page_retrieve = input('Enter page URL to retrieve: ')

page = requests.get(page_retrieve)
type(page)

page.status_code == requests.codes.ok
print()

print('File retrieval success:', page.status_code == requests.codes.ok)
links = 1
print()

if page.status_code != 200:
    print('404 Client Error: URL Not Found for: ', (page_retrieve))
    print('Data file non existent. Please review file URL for accuracy.')

if page.status_code == 200:
    univ_list = []
    html = urlopen(page_retrieve)
    bsObj = BeautifulSoup(html, "html.parser")
    for link in bsObj.findAll("a"):
        if 'href' in link.attrs:
            print(link.attrs['href'], '\n')
            univ_list.append(link.attrs['href'])
while links < len(univ_list):
    print(page_retrieve + univ_list[2])
    links = links + 1
    print(links)


print()
print('Code complete')

Я получаю полный путь к файлу для 2-го файла, просто чтобы показать, что мой код работает до этого момента, но не могу понять, как увеличить список univ_listзначение, чтобы пройти через каждую ссылку.Как только я смогу получить приращение значений univ_list, я собираюсь добавить извлекаемый фрагмент, используя разработанный мной метод открытия, записи и закрытия, который, как я знаю, работает в другом фрагменте кода, который я разработал.Все это делается для того, чтобы автоматизировать загрузку файлов на нескольких веб-сайтах в конце месяца, когда я получаю данные, которые я затем использую для составления отчетов о соблюдении политик моей компании.Я попытался сохранить ссылки в текстовом файле, но получил только одну строку со всеми 164 ссылками, поэтому просмотрел списки и теперь столкнулся с этой проблемой.

...