#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)