Я могу написать код для первых и последних страниц, но могу извлечь только данные страницы 1 в CSV. Мне нужно извлечь все 10 страниц данных в CSV. Где в коде я иду не так?
Импорт установленных модулей
import requests
from bs4 import BeautifulSoup
import csv
Для получения данных с веб-страницы мы будем использовать метод запросов get ()
url = "https://www.lookup.pk/dynamic/search.aspx?searchtype=kl&k=gym&l=lahore"
page = requests.get(url)
Для проверки http статуса кода ответа
print(page.status_code)
Теперь я собрал данные с веб-страницы, посмотрим, что мы получили
print(page.text)
Приведенные выше данные можно просмотреть в симпатичном формате с помощью метода prettify () Beautifulsoup. Для этого мы создадим объект bs4 и используем метод prettify
soup = BeautifulSoup(page.text, 'html.parser')
print(soup.prettify())
outfile = open('gymlookup.csv','w', newline='')
writer = csv.writer(outfile)
writer.writerow(["Name", "Address", "Phone"])
Найти все DIV, содержащие информацию о компаниях
product_name_list = soup.findAll("div",{"class":"CompanyInfo"})
Для извлечения номера первой и последней страницы
paging = soup.find("div",{"class":"pg-full-width me-pagination"}).find("ul",{"class":"pagination"}).find_all("a")
start_page = paging[1].text
last_page = paging[len(paging)-2].text
Теперь переберите эти элементы
for element in product_name_list:
Принимает 1 блок тега "div", {"class": "CompanyInfo"} и находит / сохраняет имя, адрес, телефон
name = element.find('h2').text
address = element.find('address').text.strip()
phone = element.find("ul",{"class":"submenu"}).text.strip()
записывает имя, адрес, телефон в csv
writer.writerow([name, address, phone])
теперь перейдет к следующему тегу "div", {"class": "CompanyInfo"} и повторится
outfile.close()