Picproje Elektronik Sitesi

PROGRAMLAMA DİLLERİ => Python => Konuyu başlatan: muhittin_kaplan - 30 Ocak 2020, 16:26:46

Başlık: selenyum lu web
Gönderen: muhittin_kaplan - 30 Ocak 2020, 16:26:46
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")