Это не лоскутный вопрос, поэтому вы НЕ должны включать скрап и скраб-паук в «теги» для вопроса. Вы используете BeautifulSoup (старый, который я должен добавить), поэтому документация, которую вы должны читать, это BeautifulSoup Документация .
Следуйте документации, включая установку, чтобы убедиться, что у вас установлена обновленная версия BeautifulSoupSoup для BS4. Я не могу с уверенностью сказать, что вы используете старый, но новый вы используете "из bs4 import BeautifulSoup" в качестве оператора импорта. Старая версия, которую вы использовали, просто говорит «import beautifulsoup»
При вероятности звучать грубо, вы должны действительно знать, что вы используете. Я вижу, что вы не знаете, как использовать базовое форматирование строки Python и использовать циклы for. Мне показалось бы, что вы могли бы выиграть от того, чтобы дать начинающим уроки Python еще одну попытку. Это не оскорбление! Просто сказать, что это будет только в вашу пользу ТАКЖЕ ...
url =
«https://www.commonfloor.com/listing-search?city=Mumbai&search_intent=sale&property_location_filter%5B%5D=region_52c256ec1614d&prop_name%5B%5D=Kandivali%20West&polygon=1&page=1&page_size=30".format(i);
В ЛЮБОМ СЛУЧАЕ!
Как правило, при синтаксическом анализе с помощью bs4 сначала вы делаете запрос, инициализируете bs4 в переменной при объявлении типа синтаксического анализатора ... в вашем случае это будет:
import requests
from bs4 import BeautifulSoup # NOT scrapy
# This is a for loop
for i in range(1,6):
# Notice the '{}' inside the url string, when we use format, the argument
# to it, i.e format(argument), is what does the formating
url = "https://www.commonfloor.com/listing-search?city=Mumbai&search_intent=sale&property_location_filter%5B%5D=region_52c256ec1614d&prop_name%5B%5D=Kandivali%20West&polygon=1&page={}&page_size=30"
#request is made
req = requests.get(url.format(i))
# Soup initialised to a variable and parsere declared. "lxml" in this case
soup = BeautifulSoup(req.content, "lxml")
items = soup.select(".snb-tile-info")
# this will print the main div boxes with the info you want