Я новичок в python и пытался получить некоторые данные с двух веб-страниц, используя Beautiful Soup и FOR LOOP, чтобы перебрать их и распечатать.
from bs4 import BeautifulSoup as soup
from urllib.request import urlopen as Ureq
url = ["https://www.sullinscorp.com/product/?pn=EMC31DRYS-S734&toggle=in","https://www.sullinscorp.com/product/?pn=PBC10SBBN&toggle=in"]
for i in url:
a = Ureq(i)
page_html = a.read()
psoup = soup(page_html, "html.parser")
c = psoup.find_all("tr")
for item in c:
print(item.text)
Из приведенного выше кода вы можете видеть, что я могу получать выходные данные с обеих веб-страниц в последовательности, но я хочу вставить пробел или несколько символов между данными обеих веб-страниц, чтобы различать их. Для этого я использовал свой маленький мозг и поместил команду print(------) в последнюю часть своего кода. Но что он делает, так это просто печатает строку символов после каждой строки.
c = psoup.find_all("tr")
for item in c:
print(item.text)
print("------")
Любое предложение по этому поводу.
Привет Целиус. Прямо сейчас я получаю o/p как: 1. ABC 2. DBG 3. GHT 1. RFG 2. RTY 3. FDF Но я хочу получить таким образом: 1. ABC 2. DBG 3. GHT ---- --- 1. RFG 2. RTY 3. FDF Надеюсь, вы меня поняли.
поместите вас print("=== = ")
во внешний цикл, а не во внутренний цикл.
IIUC, строки-разделители должны быть помещены в первый цикл for, который перебирает каждый URL-адрес, а не текст. Поэтому вам нужно удалить один уровень отступа:
for i in url:
a = Ureq(i)
page_html = a.read()
psoup = soup(page_html, "html.parser")
c = psoup.find_all("tr")
for item in c:
print(item.text)
print("------")
#...
c.psoup.find_all("tr")
for item in c:
print(item.text)
print("-----") #this line executed once the first url treated, before the second
Не могли бы вы добавить 3 строки с ожидаемым результатом, пожалуйста?