Вам нужно разобраться, как работают циклы, а также разницу между строками, переменными и другими типами данных. Вам также нужно поработать над тем, что вы видели из других вопросов, связанных со стековым потоком, и научиться применять его. По сути, это то же самое, что и другие 2 вопроса, которые вы уже опубликовали, но просто другой сайт, с которого вы копируете (но я не отметил его как дубликат, так как вы новичок в stackoverflow и веб-прокрутке, и я помню, что это было все равно что пытаться учиться). Я по-прежнему отвечу на ваши вопросы, но в конечном итоге вам нужно будет найти ответы самостоятельно и научиться их адаптировать и применять (кодирование - это не краска по цветам. Как я понимаю, вы адаптируете некоторые из них) Хорошая работа по поиску тега "div", {"class": "CompanyInfo"} для получения информации о компании)
Данные, которые вы извлекаете (имя, адрес, телефон), должны находиться во вложенном цикле элемента / тега div class = CompanyInfo. Теоретически вы можете получить его таким, каким он есть сейчас, поместив их в список, а затем записав в файл csv из своих списков, но есть риск потери данных, и тогда ваши данные / информация могут быть отключены или нет с исправить соответствующую компанию.
Вот как выглядит полный код. обратите внимание, что переменные хранятся в цикле, а затем записываются. Затем он переходит к следующему блоку CompanyInfo и продолжает.
#Import the installed modules
import requests
from bs4 import BeautifulSoup
import csv
#To get the data from the web page we will use requests get() method
url = "https://www.lookup.pk/dynamic/search.aspx?searchtype=kl&k=gym&l=lahore"
page = requests.get(url)
# To check the http response status code
print(page.status_code)
#Now I have collected the data from the web page, let's see what we got
print(page.text)
#The above data can be view in a pretty format by using beautifulsoup's prettify() method. For this we will create a bs4 object and use the prettify method
soup = BeautifulSoup(page.text, 'html.parser')
print(soup.prettify())
outfile = open('gymlookup.csv','w', newline='')
writer = csv.writer(outfile)
writer.writerow(["Name", "Address", "Phone"])
#Find all DIVs that contain Companies information
product_name_list = soup.findAll("div",{"class":"CompanyInfo"})
# Now loop through those elements
for element in product_name_list:
# Takes 1 block of the "div",{"class":"CompanyInfo"} tag and finds/stores name, address, phone
name = element.find('h2').text
address = element.find('address').text.strip()
phone = element.find("ul",{"class":"submenu"}).text.strip()
# writes the name, address, phone to csv
writer.writerow([name, address, phone])
# now will go to the next "div",{"class":"CompanyInfo"} tag and repeats
outfile.close()