<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های احسان جلیلی</title>
        <link>https://virgool.io/feed/@ehsanjalili</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-17 09:39:31</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/123897/avatar/kquDmq.png?height=120&amp;width=120</url>
            <title>احسان جلیلی</title>
            <link>https://virgool.io/@ehsanjalili</link>
        </image>

                    <item>
                <title>رسم نمودارهای پیشرفته در پایتون با کتابخانه Seaborn</title>
                <link>https://virgool.io/@ehsanjalili/%D8%B1%D8%B3%D9%85-%D9%86%D9%85%D9%88%D8%AF%D8%A7%D8%B1%D9%87%D8%A7%DB%8C-%D9%BE%DB%8C%D8%B4%D8%B1%D9%81%D8%AA%D9%87-%D8%AF%D8%B1-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-%D8%A8%D8%A7-%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87-seaborn-z2bmxiu1rpdk</link>
                <description>در این مقاله با رسم چند نمودار پیشرفته با استفاده از زبان برنامه نویسی پایتون و کتابخانه های Seaborn و Matplotlib آشنا می شویم.پیشنهاد می شود برای آشنایی بیشتر در صورت تمایل قبل از خواندن ادامه مطلب مقاله های زیر را مطالعه نمایید.آشنایی با ترسیم داده ها (رسم نمودار) در پایتونترسیم داده ها (رسم نمودار) در پایتون با کتابخانه Seabornوارد کردن مجموعه داده (Importing Datasets)import pandas as pd     
iris = pd.read_csv(&#039;iris.csv&#039;, names=[&#039;sepal_length&#039;, &#039;sepal_width&#039;, &#039;petal_length&#039;, &#039;petal_width&#039;, &#039;class&#039;]) 
wine_reviews = pd.read_csv(&#039;winemag-data-130k-v2.csv&#039;, index_col=0)  نمودار جعبه ای (Boxplot)نمودار جعبه‌ای یک روش استاندارد برای نمایش توزیع داده‌ها است که براساس شاخص‌های آماری «کوچکترین مقدار» (Minimum)، «چارک اول» (First Quartile -Q1)، «میانه» (Median)، «چارک سوم» (Third Quartile- Q3) و «بزرگترین مقدار» (Maximum) ساخته شده است. همچنین این نمودار می‌تواند در مورد وجود داده‌های پرت (Outlier)، اطلاعاتی خوبی ارائه نماید و مقدار آن‌ها را تعیین کند. ما می توانیم با استفاده از تابع boxplot  این نمودار را رسم نماییم.df = wine_reviews[(wine_reviews[&#039;points&#039;]&gt;=95) &amp; (wine_reviews[&#039;price&#039;]&lt;1000)]   sns.boxplot(&#039;points&#039;, &#039;price&#039;, data=df)نمودار جعبه ای (Boxplot)نمودار حرارتی (Heat map)نمودار حرارتی Heat Map یا نقشه رنگی یک نوع تصویرسازی از اطلاعات است که در آن مقدار هر خانه از ماتریس ورودی با یک رنگ نمایش داده‌می‌شود. این نمودار برای نشان دادن همبستگی ویژگی ها در یک مجموعه داده مناسب می باشد.در اینجا از کتابخانه های Matplotlib و Seaborn برای ایجاد نمودار حرارتی استفاده نموده ایم.import numpy as np
import matplotlib.pyplot as plt

# get correlation matrix
corr = iris.corr()
fig, ax = plt.subplots()
# create heatmap
im = ax.imshow(corr.values)
# set labels
ax.set_xticks(np.arange(len(corr.columns)))
ax.set_yticks(np.arange(len(corr.columns)))
ax.set_xticklabels(corr.columns)
ax.set_yticklabels(corr.columns)
# Rotate the tick labels and set their alignment.
plt.setp(ax.get_xticklabels(), rotation=45, ha=&amp;quotright&amp;quot,  rotation_mode=&amp;quotanchor&amp;quot)

# Loop over data dimensions and create text annotations.   
for i in range(len(corr.columns)):    
      for j in range(len(corr.columns)):    
              text = ax.text(j, i, np.around(corr.iloc[i, j], decimals=2),  ha=&amp;quotcenter&amp;quot, va=&amp;quotcenter&amp;quot, color=&amp;quotblack&amp;quot)نمودار حرارتی (Heat map) با Matplotlib sns.heatmap(iris.corr(), annot=True)نمودار حرارتی (Heat map) با Seaborn نمودار Faceting عمل Faceting شکستن تغییرات داده ها در چند نمودار فرعی و ترکیب آن ها به یک شکل واحد است. اگر می خواهید داده ها را در یک نما مشاهده نمایید، Faceting بسیار مفید است. برای استفاده از این رورش باید از تابع FacetGrid استفاده کنیم. مقادیر مجموعه داده و ستون کلاس داده ها را برای تفکیک نمودارها به تابع معرفی می کنیم. سپس باید تابع g.map با تعیین نوع نموداری که می خواهیم نمایش داده شود، را فراخوانی نماییم.g = sns.FacetGrid(iris, col=&#039;class&#039;)   
g = g.map(sns.kdeplot, &#039;sepal_length&#039;)نمودار Faceting  نمودار جفتی (Pair Plot)نمودار جفتی با تابع pairplot در کتابخانه Seaborn قابل رسم می باشد. این مجموعه نمودار این امکان را می دهند تا شبکه ای از روابط زوج  متغییر را در یک مجموعه داده نمایش دهیم. همانطور که در تصاویر  مشاهده می کنید، این روش همواره دو ویژگی را با یکدیگر رسم می نماید. در قطر تصویر نمودار هیستوگرام جهت نمایش پراکندگی داده نمایان می باشد.sns.pairplot(iris)نمودار جفتی (Pair Plot)نمودار جفتی را می توان با تابع scatter_matrix در کتابخانه pandas نیز بصورت زیر رسم نمایید.from pandas.plotting import scatter_matrix       
fig, ax = plt.subplots(figsize=(12,12))   
scatter_matrix(iris, alpha=1, ax=ax)نمودار جفتی (Pair Plot) با pandasامیدوارم این مقاله مفید بوده باشد.</description>
                <category>احسان جلیلی</category>
                <author>احسان جلیلی</author>
                <pubDate>Wed, 26 Aug 2020 10:06:51 +0430</pubDate>
            </item>
                    <item>
                <title>ترسیم داده ها (رسم نمودار) در پایتون با کتابخانه Seaborn</title>
                <link>https://virgool.io/@ehsanjalili/%D8%AA%D8%B1%D8%B3%DB%8C%D9%85-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7-%D8%B1%D8%B3%D9%85-%D9%86%D9%85%D9%88%D8%AF%D8%A7%D8%B1-%D8%AF%D8%B1-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-%D8%A8%D8%A7-%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87-seaborn-hzfdkrcagr8s</link>
                <description>ترسیم و تجسم داده ها و اطلاعات، تلاش برای ایجاد نظم و انضباط دیداری در راستای درک بهتر الگوها، روندها و همبستگی بین داده ها می باشد. شناسایی ویژگی های داده ممکن است به روش های دیگر قابل کشف نباشند. زبان برنامه نویسی #پایتون چندین کتابخانه گرافیکی عالی با ویژگی های گوناگون را ارائه می نماید. اگر می خواهید یک نمایش تعاملی، پویا و بسیار سفارشی از داده ها ایجاد کنید، پایتون کتابخانه های بسیار کاربردی را برای این منظور فراهم نموده است.کتابخانه Seaborn در اینجا برخی از محبوب ترین کتابخانه های گرافیکی پایتون برای آشنایی معرفی می شوند. کتابخانه Matplotlib: رابط کاربری سطح پایین با انعطاف بالاکتابخانه Pandas Visualization: رابط کاربری آسان، ساخته شده در Matplotlib     کتابخانه Seaborn: رابط کاربری سطح بالا ، سبک های پیش فرض عالی     کتابخانه Plotly: رابط کاربری سطح بالا، امکان ارتباط تعاملیدر مقاله قبل در مورد کتابخانه Matplotlib بحث کردیم در این مقاله با کتابخانه Seaborn آشنا خواهیم شد.پیشنهاد می شود برای آشنایی بیشتر در صورت تمایل مقاله زیر مطالعه نمایید.آشنایی با ترسیم داده ها (رسم نمودار) در پایتونوارد کردن مجموعه داده (Importing Datasets)import pandas as pd    
iris = pd.read_csv(&#039;iris.csv&#039;, names=[&#039;sepal_length&#039;, &#039;sepal_width&#039;, &#039;petal_length&#039;, &#039;petal_width&#039;, &#039;class&#039;])    
print(iris.head())Iris Dataset head کتابخانه Seabornکتابخانه Seaborn  براساس کتابخانه Matplotlib ساخته شده است. این رابط سطح بالا امکانات جذابی را برای رسم نمودار فراهم می نماید.کتابخانه Seaborn پیشنهادهای خوبی دارد که شما را قادر می سازند با یک خط نموداری را رسم کنید که در کتابخانه  Matplotlib باید چندین خط کد نویسی می کردید. طرح های استاندارد آن بسیار جذاب است و دارای رابط کاربری مناسب برای کار با Dataframes Pandas می باشد.این کتابخانه را به روش زیر می توانیم در زبان برنامه نویسی پایتون وارد نماییم.import seaborn as snsنمودار پراکندگی (Scatter Plot)با استفاده از تابع scatterplot می توانیم نمودار پراکندگی را ایجاد نماییم. برای رسم نمودار نیاز هست که نام سطر و ستون x و y را نیز تعیین نماییم. بعلاوه مقادیر داده ها را نیز به عنوان یک آرگومان اضافی به تابع انتقال دهیم. sns.scatterplot(x=&#039;sepal_length&#039;, y=&#039;sepal_width&#039;, data=iris)نمودار پراکندگی (Scatter Plot) همچنین می توانیم با استفاده از آرگومان hue، نقاط را براساس کلاس بصورت رنگی برجسته نماییم، که این عمل بسیار راحت تر از کتابخانه Matplotlib انجام می گردد.sns.scatterplot(x=&#039;sepal_length&#039;, y=&#039;sepal_width&#039;, hue=&#039;class&#039;, data=iris)نمودار پراکندگی (Scatter Plot) رنگ شده براساس کلاس نمودار خطی (Line Chart)برای ایجاد نمودار خطی از تابع lineplot استفاده می نماییم. تنها آرگومان مورد نیاز مقدار داده ها است که در مورد مثال این مقاله چهار ستون عددی از مجموعه داده های Iris هستند. sns.lineplot(data=iris.drop([&#039;class&#039;], axis=1))نمودار خطی (Line Chart) همچنین می توانیم از تابع kdeplot استفاده کنیم که لبه های منحنی ها را گرد نماید. بنابراین اگر تعداد زیادی داده نویز داشته باشیم نمودار خطی مناسب تری از نظر بصری ایجاد می نماید.sns.lineplot(data=iris.drop([&#039;class&#039;], axis=1))برای ادامه این مقاله از یک دیتاست دیگر استفاده می کنیم.wine_reviews = pd.read_csv(&#039;winemag-data-130k-v2.csv&#039;, index_col=0)   
wine_reviews.head()نمودار هیستوگرام (Histogram)برای ایجاد هیستوگرام از تابع distplot استفاده می کنیم. ما باید ستونی را که می خواهیم ترسیم کنیم، را به تابع ارسال کنیم تا تابع روی مقادیر داده ها محاسبات فراوانی بصورت گروهبندی شده را انجام دهد. همچنین می توانیم تعداد بازه های مورد نیاز را تعیین نمایییم و اگر بخواهیم تخمین تراکم هسته گاوسی را در داخل نمودار ترسیم کنیم.sns.distplot(wine_reviews[&#039;points&#039;], bins=10, kde=False)نمودار هیستوگرام (Histogram)  sns.distplot(wine_reviews[&#039;points&#039;], bins=10, kde=True)نمودار هیستوگرام (Histogram) نمودار میله ای (Bar Chart)برای رسم نمودار میله ای از تابع countplot استفاده می کنیم و فقط کافی است که داده مورد نظر را به تابع ارسال نماییم.sns.countplot(wine_reviews[&#039;points&#039;])نمودار میله ای (Bar Chart) </description>
                <category>احسان جلیلی</category>
                <author>احسان جلیلی</author>
                <pubDate>Tue, 25 Aug 2020 12:27:23 +0430</pubDate>
            </item>
                    <item>
                <title>آشنایی با ترسیم داده ها (رسم نمودار) در پایتون</title>
                <link>https://dataio.ir/آشنایی-با-ترسیم-داده-ها-در-پایتون-lr7ryfgkzqhq</link>
                <description>ترسیم و تجسم داده ها و اطلاعات، تلاش برای ایجاد نظم و انضباط دیداری در راستای درک بهتر الگوها، روندها و همبستگی بین داده ها می باشد. شناسایی ویژگی های داده ممکن است به روش های دیگر قابل کشف نباشند.زبان برنامه نویسی #پایتون چندین کتابخانه گرافیکی عالی با ویژگی های گوناگون را ارائه می نماید. اگر می خواهید یک نمایش تعاملی، پویا و بسیار سفارشی از داده ها ایجاد کنید، پایتون کتابخانه های بسیار کاربردی را برای این منظور فراهم نموده است.در اینجا برخی از محبوب ترین کتابخانه های گرافیکی پایتون برای آشنایی معرفی می شوند.    Matplotlib: رابط کاربری سطح پایین با انعطاف بالا    Pandas Visualization: رابط کاربری آسان، ساخته شده در Matplotlib    Seaborn: رابط کاربری سطح بالا ، سبک های پیش فرض عالی    Plotly: رابط کاربری سطح بالا، امکان ارتباط تعاملیدر این مقاله یاد خواهیم گرفت که چگونه با استفاده از این کتابخانه ها و  همچنین نحوه استفاده از برخی از ویژگی های خاص هر کتابخانه، نمایش گرافیکی مناسبی را ایجاد کنیم. وارد کردن مجموعه داده (Importing Datasets)برای وارد کردن مجموعه داده با فرمت csv می توان از تابع read_csv از کتابخانه Pandas استفاده نمود. در این مقاله از مجموعه داده استاندارد iris استفاده کرده ایم.import pandas as pd   iris = pd.read_csv(&#x27;iris.csv&#x27;, names=[&#x27;sepal_length&#x27;, &#x27;sepal_width&#x27;, &#x27;petal_length&#x27;, &#x27;petal_width&#x27;, &#x27;class&#x27;])   print(iris.head())Iris Dataset headکتابخانه Matplotlib:کتابخانه Matplotlib محبوب ترین کتابخانه ترسیم نمودار در زبان برنامه نویسی پایتون است. این کتابخانه رابط کاربری شبیه نرم افزار Matlab دارد که انعطاف و آزادی زیادی را با تعداد کم نوشتن خط کد ارائه می دهد.برای نصب Matplotlib از می توان به روش زیر عمل نمود.pip install matplotlibکتابخانه Matplotlib بطور خاص برای رسم و ایجاد نمودارهای پایه ای مانند نمودار خطی، نمودار ستونی، هیستوگرام و بسیاری موارد دیگر استفاده نمود. این کتابخانه را به روش زیر در زبان برنامه نویسی پایتون وارد می نماییم.import matplotlib.pyplot as pltنمودار پراکندگی (Scatter Plot)برای ایجاد یک نمودار پراکندگی در Matplotlib می توانیم از تابع scatter استفاده کنیم و همچنین با استفاده از تابع subplots می توانیم عنوان نمودار و نام محورها را تعیین نماییم.# create a figure and axis   fig, ax = plt.subplots()       # scatter the sepal_length against the sepal_width   ax.scatter(iris[&#x27;sepal_length&#x27;], iris[&#x27;sepal_width&#x27;])   # set a title and labels   ax.set_title(&#x27;Iris Dataset&#x27;)   ax.set_xlabel(&#x27;sepal_length&#x27;)   ax.set_ylabel(&#x27;sepal_width&#x27;)Scatter Plotبرای اینکه مفهوم بیشتری به نمودار اضافه کنیم می توانیم از رنگ ها برای هر دسته یا کلاس داده کمک بگیریم. برای این منظور یک نوع داده دیکشنری ایجاد می کنیم و برای هر دسته از داده های یک رنگ بخصوص را نگاشت می نماییم. سپس با یک حلقه for هر رنگ را به یک نقطه اختصاص میدهیم.# create color dictionary   colors = {&#x27;Iris-setosa&#x27;:&#x27;r&#x27;, &#x27;Iris-versicolor&#x27;:&#x27;g&#x27;, &#x27;Iris-virginica&#x27;:&#x27;b&#x27;}   # create a figure and axis   fig, ax = plt.subplots()  # plot each data-point   for i in range(len(iris[&#x27;sepal_length&#x27;])):          ax.scatter(iris[&#x27;sepal_length&#x27;][i], iris[&#x27;sepal_width&#x27;][i],color=colors[iris[&#x27;class&#x27;][i]])   # set a title and labels   ax.set_title(&#x27;Iris Dataset&#x27;)   ax.set_xlabel(&#x27;sepal_length&#x27;)   ax.set_ylabel(&#x27;sepal_width&#x27;)Scatter Plot colored by classنمودار خطی (Line Chart)در کتابخانه Matplotlib ما می توانیم یک نمودار خطی با فراخوانی تابع plot ایجاد نماییم. همچنین می توانیم چند نمودار خطی را در یک صفحه از نمودار نمایش دهیم البته به شرطی که محور افقی نمودار ثابت باشد یا بیان دیگر جدول داده چند ستون مجزا داشته باشد. # get columns to plot   columns = iris.columns.drop([&#x27;class&#x27;])   # create x data   x_data = range(0, iris.shape[0])   # create figure and axis   fig, ax = plt.subplots()   # plot each column   for column in columns:          ax.plot(x_data, iris[column], label=column)   # set title and legend   ax.set_title(&#x27;Iris Dataset&#x27;)   ax.legend()Line Chartنمودار هیستوگرام (Histogram)در کتابخانه Matplotlib ما می توانیم یک نمودار هیستوگرام با فراخوانی تابع hist ایجاد نماییم. اگر کلاس های داده ای که در هر ستون مقدار خاصی درج شده است را در نظر بگیریم، نمودار هیستوگرام به طور خودکار میزان رخداد هر کلاس را محاسبه می کند.# create figure and axis   fig, ax = plt.subplots()   # plot histogram   ax.hist(iris[&#x27;sepal_length&#x27;], bins=12)   # set title and labels   ax.set_title(&#x27;sepal_length&#x27;)   ax.set_xlabel(&#x27;Points&#x27;)   ax.set_ylabel(&#x27;Frequency&#x27;)Histogramنمودار میله ای (Bar Chart)یک نمودار میله ای می تواند توسط تابع bar در کتابخانه Matplotlib ایجاد شود. نمودار میله ای بطور خودکار نمی تواند فراوانی هر دسته را محاسبه نماید. بنابراین ما از تابع value_counts کتابخانه pandas برای این کار استفاده می نماییم. نمودار میله ای برای داده های طبقه بندی شده که تعداد طبقه های آن زیاد نباشد (کمتر از 30) بسیار کاربردی است. در صورتیکه تعداد طبقه ها زیاد باشد نمودار بسیار شلوغ می شود قابلیت خوانایی و وضوح خود را از دست می دهد.# create a figure and axis    fig, ax = plt.subplots()    # count the occurrence of each class    data = iris[&#x27;class&#x27;].value_counts()    # get x and y data    points = data.index    frequency = data.values    # create bar chart    ax.bar(points, frequency)    # set title and labels    ax.set_title(&#x27;Iris Class&#x27;)    ax.set_xlabel(&#x27;Points&#x27;)    ax.set_ylabel(&#x27;Frequency&#x27;)Bar Chartدر مقاله های بعدی به معرفی کتابخانه های بصری دیگر پایتون خواهیم پرداخت.</description>
                <category>احسان جلیلی</category>
                <author>احسان جلیلی</author>
                <pubDate>Sat, 13 Jun 2020 18:10:34 +0430</pubDate>
            </item>
                    <item>
                <title>استخراج اطلاعات از وب (وب اسکرپینگ) با پایتون و سلنیوم</title>
                <link>https://virgool.io/@ehsanjalili/%D8%A7%D8%B3%D8%AA%D8%AE%D8%B1%D8%A7%D8%AC-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA-%D8%A7%D8%B2-%D9%88%D8%A8-%D9%88%D8%A8-%D8%A7%D8%B3%DA%A9%D8%B1%D9%BE%DB%8C%D9%86%DA%AF-%D8%A8%D8%A7-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-%D9%88-%D8%B3%D9%84%DB%8C%D9%86%DB%8C%D9%88%D9%85-loob1my2kno4</link>
                <description>با زبان برنامه نویسی پایتون قادر خواهیم بود داده ها و اطلاعات را از وب سایت ها بازیابی، پردازش و با عناصر یک وب سایت تعامل کنیم. وب اسکرپینگ ابزاری برای تبدیل داده های بدون ساختار در وب به داده های ساخت یافته قابل خواندن برای ماشین و آماده برای تجزیه و تحلیل است. در اینجا سعی می کنیم به بخشی از توانایی های زبان برنامه نویسی پایتون و کتابخانه سلنیوم اشاره کنیم.Web Scraping with Pythonابتدا باید پایتون را از آدرس زیر مرتبط با سیستم عامل مورد نظر دانلود و نصب نماییم.http://www.python.org/download/سپس با ابزار pip کتابخانه سلنیوم را نصب میکنیم (دقت داشته باشیم برای نصب کتابخانه باید اتصال به اینترنت داشته باشیم)pip install seleniumکتابخانه سلنیوم قادر است یک مرورگر وب را برای تعامل با وب سایت مورد نظر ایجاد کند. برای کار با سلنیوم، باید به درایور مرورگر دسترسی داشته باشیم. بطور پیش فرض درایورهای Chrome ، Firefox ، Edge و Safari موجود است.برای استفاده از هر کدام می توانیم درایور مورد نظر را را دانلود و سپس در برنامه خود آدرس دهی کنیم. اطلاعات بیشتر در آدرس زیر موجود می باشد.https://selenium.dev/documentation/en/webdriver/driver_requirements/خوب حالا زمان نوشتن یک برنامه ساده با پایتون و سلنیوم فرا رسیده است. (در اینجا از داریور کروم استفاده شده است)from selenium.webdriver import Chrome
driver = Chrome()حالا در ادامه می خواهیم وب سایت اینستاگرام را باز کنیم به و با استفاده از برنامه بصورت خودکار لاگین کنیم.هی استفاده نمایید. driver = Chrome(executable_path=&#039;/path/to/chromedriver&#039;)حالا در ادامه میخواهیم سایت #اینستاگرام را باز کنیم و با استفاده از برنامه بصورت خودکار لاگین کنیم.ابتدا باید صفحه مورد نظر را لود کنیم که به سادگی با دستور get این عملیات را انجام می دهیم.driver.get(&#039;https://www.instagram.com/accounts/login/&#039;)سپس بخش هایی را که باید با پست الکترونیک یا نام کاربری و کلمه عبور تکمیل شوند در صفحه لود شده پیدا و مقادیر مورد نظر خود را در آن درج نماییم.emailInput = driver.find_elements_by_css_selector(&#039;form input&#039;)[0]
passwordInput = driver.find_elements_by_css_selector(&#039;form input&#039;)[1]شاید این بخش سخت ترین قسمت کار باشد و به آشنایی با برنامه نویسی در بستر وب نیاز دارد. با این حال روشی که را در اینجا آموزش می دهیم و استفاده می کنیم تا اندازه زیادی شما را از پیچیدگی های بررسی کد های HTML  بی نیاز می کند.چند روش برای پیدا کردن عناصر در کتابخانه سلنیوم وجود دارد.find_element_by_id
find_element_by_name
find_element_by_xpath
find_element_by_link_text
find_element_by_partial_link_text
find_element_by_tag_name
find_element_by_class_name
find_element_by_css_selectorاگر بخواهیم چند عنصر را پیدا کنیم همین دستورات با یک s استفاده می شوند که مشخص است خروجی توابع نیز یک چندگانه یا لیست می باشد.find_elements_by_name
find_elements_by_xpath
find_elements_by_link_text
find_elements_by_partial_link_text
find_elements_by_tag_name
find_elements_by_class_name
find_elements_by_css_selectorاطلاعات بیشتر را از لینک زیر می توانید بدست آوردیدhttps://selenium-python.readthedocs.io/locating-elements.htmlاگر نام یا شناسه عنصر مورد نظر را داشته باشیم بهترین روش استفاده از توابع  find_element_by_id  و find_element_by_name می باشد، ولی هنگامی که id  و name مناسب وجود نداشته باشد می توان از تابع find_element_by_xpath استفاده نمود. در واقع xpath برای اسناد XML و XHTML استفاده می شود ولی برای شناسایی عناصر بصورت مطلق یا نسبی و حتی با id و name نیز می توان بصورت مشخص از آن استفاده نمود. به مثال زیر توجه کنید.&lt;html&gt;
&lt;body&gt;
&lt;form id=&amp;quotloginForm&amp;quot&gt;
&lt;input name=&amp;quotusername&amp;quot type=&amp;quottext&amp;quot /&gt;
&lt;input name=&amp;quotpassword&amp;quot type=&amp;quotpassword&amp;quot /&gt;
&lt;input name=&amp;quotcontinue&amp;quot type=&amp;quotsubmit&amp;quot value=&amp;quotLogin&amp;quot /&gt;
&lt;input name=&amp;quotcontinue&amp;quot type=&amp;quotbutton&amp;quot value=&amp;quotClear&amp;quot /&gt;
&lt;/form&gt;
&lt;/body&gt;
&lt;html&gt;آدرس دهی عناصر بصورت زیر می باشد.login_form = driver.find_element_by_xpath(&amp;quot/html/body/form[1]&amp;quot)
login_form = driver.find_element_by_xpath(&amp;quot//form[1]&amp;quot)
login_form = driver.find_element_by_xpath(&amp;quot//form[@id=&#039;loginForm&#039;]&amp;quot)شاید یک مقدار گیج کننده باشد به همین خاطر پیشنهاد خیلی ساده استفاده از addon هاست که با یک کلیک بتوان آرگومان تابع را بدست آورد. دو تا از بهترین addon ها Ranorex Selocity وxPath Finder  هستند. با نصب این addon ها روی مرورگر می توانید xpath یک عنصر را بدست آوردید.همانطور که در تصویر هم مشخص هست می توان مقدار CSS را برای تابع css_selector نیز بدست آورد.حالا وقتش رسیده که یک برنامه برای ورود خودکار به صفحه لاگین سایت اینستاگرام بطور نمونه بنویسیم  و سپس اطلاعات یک کاربر را از صفحه اش استخراج می کنیم.ابتدا با استفاده از Ranorex Selocity عناصر username و password را بدست آورده و نام کاربری و کلمه عبور را با تابع send_keys اضافه می کنیم و سپس کلید Enter را ارسال کرده تا فرم ارسال شود.from selenium.webdriver import Chrome
from selenium.webdriver.common.keys import Keys
driver = Chrome(executable_path=&amp;quot./chromedriver&amp;quot)
driver.get(&amp;quothttps://www.instagram.com/accounts/login/?next=/explore/&amp;quot)
xpath_email = &amp;quot/html//div[@id=&#039;react-root&#039;]/section/main[@role=&#039;main&#039;]//article[@class=&#039;agXmL&#039;]//form[@method=&#039;post&#039;]//input[@name=&#039;username&#039;]&amp;quot
xpath_password = &amp;quot/html//div[@id=&#039;react-root&#039;]/section/main[@role=&#039;main&#039;]//article[@class=&#039;agXmL&#039;]//form[@method=&#039;post&#039;]//input[@name=&#039;password&#039;]&amp;quot
emailInput = driver.find_element_by_xpath(xpath_email)
passwordInput = driver.find_element_by_xpath(xpath_password)
emailInput.send_keys(&amp;quotemail&amp;quot)
passwordInput.send_keys(&amp;quotpassword&amp;quot)
passwordInput.send_keys(Keys.ENTER)بعد از لاگین موفق صفحه اینستاگرام virgool.io را لود کرده و مقادیر posts و followers و following را استخراج می نماییم.driver.get(&amp;quothttps://www.instagram.com/virgool.io/&amp;quot)
xpath_data = &amp;quot//div[@id=&#039;react-root&#039;]/section/main[@role=&#039;main&#039;]//section[@class=&#039;zwlfE&#039;]/ul&amp;quot
data = driver.find_element_by_xpath(xpath_data)
print(data.text)خروجی اجرای برنامهامیدوارم این مقاله برای شما مفید بوده باشد.https://www.instagram.com/ehsanjalili/</description>
                <category>احسان جلیلی</category>
                <author>احسان جلیلی</author>
                <pubDate>Tue, 04 Feb 2020 18:42:00 +0330</pubDate>
            </item>
            </channel>
</rss>