Пока что я могу очистить начальную страницу и сохранить. Я пытаюсь использовать количество страниц на сайте, чтобы определить количество циклов.
Количество страниц находится в коде со значением 'count =', которое в данном случае равно 18. Как я могу l oop мой код для очистки и сохранения каждой страницы?
Во-вторых, мой код очищает каждый url
3 раза.
Есть ли способ не иметь дубликаты?
Наконец, я использую 'strip', чтобы получить динамическое c целое число для l oop. Элемент возвращает текст: Просмотр страницы 1 из 18. Использование 'strip' возвращает правильный номер, если последний номер представляет собой одно целое число. В этом случае, поскольку их два (18), он возвращает только 8. Не могу понять, что это за меня.
Цените помощь.
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from bs4 import BeautifulSoup
import re
import csv
chrome_driver = "C:/chromedriver.exe"
Chrome_options = Options()
Chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9015")
options = webdriver.ChromeOptions()
driver = webdriver.Chrome(chrome_driver, options=Chrome_options)
source = driver.page_source
soup = BeautifulSoup(source, "html.parser")
### set zipcode and search length ###
zipcode = "84105"
search = "1yr" #search option: 1mo 3mo 6mo 1yr 2yr 3yr All
url = 'https://www.redfin.com/zipcode/' + zipcode + '/filter/include=sold-' + search
https = "https://www.redfin.com"
driver.get(url)
#####################################
### get page count ###
count = soup.find('span', class_='pageText').get_text() #grabs total pages to grab
pages = count.strip('Viewing page 1 of') #gives a number of pages to paginate
print("This search has " + pages + " pages" + ": " + zipcode)
print(url)
########################
data = []
for url in soup.find_all('a', attrs={'href': re.compile("^/UT/")}):
print(https + url['href'])
data.append(https + url['href'])
with open("links.csv",'a') as csvfile:
write = csv.writer(csvfile, delimiter = ' ')
write.writerows(data)