13 Ağustos 2020, 21:19:51

Haberler:

Picproje Pazar Sohbetleri: https://bit.ly/2GHsjAK


selenyum lu web

Başlatan muhittin_kaplan, 30 Ocak 2020, 16:26:46

muhittin_kaplan

30 Ocak 2020, 16:26:46 Son düzenlenme: 30 Ocak 2020, 16:27:55 muhittin_kaplan
Bu bir deneme çalışması ama belkide işinize yarar. Sarı web sayfasındaki sonuçların fiyatlarını alıp lineer reg ile fiyat analizi yapıyor.

chromedriver i https://chromedriver.chromium.org/getting-started dan indirebilirsiniz.
Projenin çalışması için modüllerin yüklü olması gerekir. Bunu anaconda framework ile hızlıca yapabilirsiniz. (https://anaconda.org/)

from tqdm import tqdm
from selenium import webdriver
from selenium
.webdriver.support.ui import WebDriverWait
from selenium
.webdriver.chrome.options import Options
import matplotlib
.pyplot as plt
import numpy 
as np
import pandas 
as pd

chrome_options 
Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
driver webdriver.Chrome(executable_path='path/chromedriver',options=chrome_options)

url="https://www.sahibinden.com/citroen-c5"
driver.get(url)
driver.wait WebDriverWait(driver5)
try:
    
sayfaSayisi=driver.find_elements_by_class_name("mbdef")[0]
    
sayfaSayisiVal=sayfaSayisi.text
    sayfaSayisiVal
=int(sayfaSayisiVal.split()[1])
except IndexError:
    
sayfaSayisiVal=1

fiyatlar
=[]
print( 
url.find('?'))
if 
url.find('?')==-1:
    
paging "?pagingOffset="
else:
    
paging "&pagingOffset="

try:
    for 
sayfa in tqdm(range(sayfaSayisiVal)):


        
nurl=url+paging+str(sayfa*20)
        
driver.get(nurl)
        
driver.wait WebDriverWait(driver5)
        
araclar driver.find_elements_by_class_name("searchResultsItem")
        for 
i in araclar:
            
aracFiyatlari=i.find_elements_by_class_name("searchResultsPriceValue")
            if 
aracFiyatlari.__len__()==1:
                
fiyatlar.append(float(aracFiyatlari[0].text.split()[0]))
except:
    
pass
driver
.wait WebDriverWait(driver5)
driver.close()

x=np.arange(0,len(fiyatlar))
np.vstack([xnp.ones(len(x))]).T
m
np.linalg.lstsq(Afiyatlarrcond=None)[0]
plt.plot(xm*c'r'label='Fitted line')
plt.scatter(x=x,y=fiyatlar)
print(
x.max())
plt.title(url+"\nToplam:"+str(fiyatlar.__len__()))
plt.show()

#driver.save_screenshot("test.png")