Могу ли я оптимизировать этот код с помощью массива, чтобы он работал на 100 страницах за один цикл?

#python #arrays

#python #массивы

Вопрос:

Я довольно новичок в написании кода на Python. Я пробую анализатор веб-сайта с помощью Beautiful Soup, и он отлично работает. Мне нужны рекомендации по оптимизации моего кода, потому что мне нужно проанализировать 100 страниц одного веб-сайта одну за другой, и я хотел сделать это с помощью одного цикла массива страниц. Страницы изменяются только по номерам, таким как:https://www.example.com/cat?page1 /cat?страница 2 / cat? страница 3 и т.д. Пожалуйста, посмотрите код ниже и, если сможете, дайте совет по моей теме. Заранее большое спасибо <3

 from __future__ import print_function
from re import sub
from bs4 import BeautifulSoup
from urllib.request import urlopen
urlpage= urlopen("https://www.example.com/cat?page1").read()
bswebpage=BeautifulSoup(urlpage)
results=bswebpage.findAll("div",{'class':"someDiv"})
for result in results:
  print(sub("amp;ldquo;|.amp;rdquo;","","".join(result.contents[0:1]).strip()))  

Ответ №1:

Вы можете создать цикл там следующим образом:

 for i in range(1, 101): #goes from 1-100
    url = f"https://www.example.com/cat?page{i}" #page1 etc.
    urlpage= urlopen(url).read()
    bswebpage=BeautifulSoup(urlpage)
    results=bswebpage.findAll("div",{'class':"someDiv"})
    for result in results: print(sub("amp;ldquo;|.amp;rdquo;","","".join(result.contents[0:1]).strip()))
  

В части результатов вы можете создать массив:

 all_results = []
(... then inside the for)
    all_results.append(results)