در این مطلب، ویدئو خراش دادن وب با پایتون با استفاده از Requests و LXML – دوره Crash با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 1:18:02
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,030 –> 00:00:02,280
سلام به همه و خوش آمدید به این
2
00:00:02,280 –> 00:00:04,230
دوره کاملاً جدید خرابی اسکراپینگ وب با
3
00:00:04,230 –> 00:00:06,569
پایتون با استفاده از کوئست و الکس یک مرد و
4
00:00:06,569 –> 00:00:08,220
من فقط می خواهم به شما اطلاع دهم که این
5
00:00:08,220 –> 00:00:10,860
ویدیوی یک ساعته فقط یک نسخه نمایشی از
6
00:00:10,860 –> 00:00:13,410
دوره جدید اسکراپینگ وب من در مورد udemi است، پس اگر
7
00:00:13,410 –> 00:00:15,360
از آن لذت بردید. محتوا و میخواهم بیشتر بیاموزم،
8
00:00:15,360 –> 00:00:17,130
لطفاً از پیوند موجود در
9
00:00:17,130 –> 00:00:19,410
جعبه توضیحات استفاده کنید که در آن یک
10
00:00:19,410 –> 00:00:21,330
کد کوپن با حداکثر قیمت تخفیف قرار
11
00:00:21,330 –> 00:00:23,640
دادهام که میتوانم به 50
12
00:00:23,640 –> 00:00:25,830
دانشآموز اولی که دوره را خریداری میکنند ارائه دهم، همچنین اگر
13
00:00:25,830 –> 00:00:27,390
محتوا را دوست دارید، لطفاً به شما کمک کنید.
14
00:00:27,390 –> 00:00:29,279
با دوستان خود به اشتراک بگذارید و مشترک شوید
15
00:00:29,279 –> 00:00:31,849
16
00:00:35,170 –> 00:00:37,600
سلام به همه در این ویدیو، من سعی می کنم
17
00:00:37,600 –> 00:00:39,640
به طور خلاصه چند ابزار و چارچوب های مختلف را
18
00:00:39,640 –> 00:00:41,550
که برای انجام درست وب اسکرپینگ استفاده می شود به شما نشان دهم،
19
00:00:41,550 –> 00:00:44,079
بنابراین به طور کلی ابزارهای زیادی وجود دارد که
20
00:00:44,079 –> 00:00:45,940
امروزه می توانید از آنها برای انجام وب
21
00:00:45,940 –> 00:00:48,160
اسکرپینگ استفاده کنید. از دیدن ابزارها منظورم
22
00:00:48,160 –> 00:00:49,930
چارچوب های کامل مانند
23
00:00:49,930 –> 00:00:52,239
مربع P است که
24
00:00:52,239 –> 00:00:54,730
محبوب ترین است و راه مورد علاقه من است که
25
00:00:54,730 –> 00:00:57,430
به پروژه های بزرگ و پیچیده می آید، به
26
00:00:57,430 –> 00:00:59,379
طوری که من قبلاً یک دوره آموزشی در مورد آن
27
00:00:59,379 –> 00:01:01,089
دارم. آنا آن را بررسی کنید، میتوانید
28
00:01:01,089 –> 00:01:03,309
بخش پاداشی را که در پایان این دوره اضافه میکنم بررسی کنید،
29
00:01:03,309 –> 00:01:05,229
اکنون به جای
30
00:01:05,229 –> 00:01:07,509
فریمورکها، ماژولهایی داریم که دو مورد از آنها
31
00:01:07,509 –> 00:01:10,000
به طور گسترده استفاده میشوند، اولی
32
00:01:10,000 –> 00:01:12,520
سوپ زیبا و دومی
33
00:01:12,520 –> 00:01:15,100
El XML نام دارد. اساساً این دو
34
00:01:15,100 –> 00:01:17,649
تجزیه کننده نامیده می شوند که ما از آنها برای تجزیه
35
00:01:17,649 –> 00:01:19,539
صفحات وب HTML استفاده می کنیم در این دوره از
36
00:01:19,539 –> 00:01:22,210
El XML استفاده خواهیم کرد زیرا بسیار سبک تر
37
00:01:22,210 –> 00:01:24,580
و سریع تر است اشتباه نکنید. من نمی
38
00:01:24,580 –> 00:01:27,460
گویم el XML بهتر از
39
00:01:27,460 –> 00:01:30,130
سوپ یا سوپ زیبا است. سوپ زیبا بهتر از el
40
00:01:30,130 –> 00:01:33,910
XML است نه به هیچ وجه با این حال سوپ زیبا
41
00:01:33,910 –> 00:01:36,130
از نظر قابلیت ها غنی تر است،
42
00:01:36,130 –> 00:01:38,410
کارکردهای بیشتری برای استفاده دارد، اما از آنجایی که در
43
00:01:38,410 –> 00:01:41,259
وب اسکرپینگ ما از چیزی که ما به آن خبره می گوییم
44
00:01:41,259 –> 00:01:43,030
و انتخابگرهای CSS استفاده می کنیم تا انتخاب کنیم که
45
00:01:43,030 –> 00:01:45,250
یک فرار به
46
00:01:45,250 –> 00:01:47,049
چه معناست. برای انجام کارهای ساده به چنین ابزار پیچیده ای نیاز
47
00:01:47,049 –> 00:01:49,299
نداریم، البته ما نمی توانیم
48
00:01:49,299 –> 00:01:51,880
متخصص در انتخابگرهای CSS را با جزئیات پوشش دهیم،
49
00:01:51,880 –> 00:01:54,520
بنابراین نگران این موضوع نباشیم و یکی دیگر
50
00:01:54,520 –> 00:01:56,920
از مزایای سوپ زیبا این است که
51
00:01:56,920 –> 00:01:59,560
صفحات HTML شکسته و شکسته را به خوبی مدیریت می کند.
52
00:01:59,560 –> 00:02:02,320
ke El XML به همین دلیل است که در این دوره
53
00:02:02,320 –> 00:02:04,119
بعداً به شما نشان خواهم داد که چگونه
54
00:02:04,119 –> 00:02:06,880
چیزی به نام سوپ جزئی که توسط سوپ زیبا استفاده می شود
55
00:02:06,880 –> 00:02:09,459
با El XML ترکیب کنید تا
56
00:02:09,459 –> 00:02:12,519
صفحات وب شکسته HTML را با
57
00:02:12,519 –> 00:02:15,070
یک خط کد به صورت
58
00:02:15,070 –> 00:02:18,070
ترکیبی ارسال کنید. El XML همچنین میتوانیم از
59
00:02:18,070 –> 00:02:20,100
یک بسته معروف در پایتون به نام
60
00:02:20,100 –> 00:02:22,750
درخواستها استفاده کنیم و اساساً از این
61
00:02:22,750 –> 00:02:25,450
بسته برای ارسال درخواست به یک وبسایت خاص استفاده
62
00:02:25,450 –> 00:02:28,630
میشود تا در ازای آن نشانهگذاری HTML یا
63
00:02:28,630 –> 00:02:29,950
پاسخ HTML را دریافت کنیم،
64
00:02:29,950 –> 00:02:32,410
بنابراین به طور خلاصه از یک XML استفاده میکنیم.
65
00:02:32,410 –> 00:02:35,950
درخواستهای درخواستی ما از آن برای
66
00:02:35,950 –> 00:02:38,680
دانلود نشانهگذاری HTML استفاده میکنیم و با Alex
67
00:02:38,680 –> 00:02:40,989
ml میتوانیم آن نشانهگذاری HTML را برای
68
00:02:40,989 –> 00:02:43,060
پاک کردن دادههایی که میخواهیم پاس کنیم، البته همه
69
00:02:43,060 –> 00:02:45,550
اینها همانطور که قبلاً گفتم با استفاده از
70
00:02:45,550 –> 00:02:48,300
انتخابگرهای CSS و XPath اکنون
71
00:02:48,300 –> 00:02:50,100
مهم است و آنچه که من واقعاً
72
00:02:50,100 –> 00:02:53,640
در مورد آن هیجانزده هستم. splash splash واقعاً یک
73
00:02:53,640 –> 00:02:57,000
API قدرتمند HTTP است، مانند یک مرورگر است،
74
00:02:57,000 –> 00:02:58,890
اما نحوه ارتباط ما با آن
75
00:02:58,890 –> 00:03:01,230
مرورگر از طریق برخی دستورات است، بنابراین
76
00:03:01,230 –> 00:03:03,150
هیچ رابط کاربری گرافیکی برای تعامل با آن وجود ندارد،
77
00:03:03,150 –> 00:03:05,670
ما از splash برای مدیریت وبسایتهایی استفاده میکنیم
78
00:03:05,670 –> 00:03:08,100
که به JavaS متکی هستند. کریپت برای
79
00:03:08,100 –> 00:03:10,230
ارائه محتوا زیرا همانطور که
80
00:03:10,230 –> 00:03:13,470
قبلاً می دانید درخواست خود نمی تواند
81
00:03:13,470 –> 00:03:15,900
جاوا اسکریپت را مدیریت کند، این یک مشکل رایج در
82
00:03:15,900 –> 00:03:18,210
اسکرپینگ وب است و می دانم که ممکن است
83
00:03:18,210 –> 00:03:20,370
برای شما مبهم به نظر برسد، اما همانطور که ما
84
00:03:20,370 –> 00:03:22,560
دوره را طی می کنیم، ایده را دریافت خواهید کرد و
85
00:03:22,560 –> 00:03:24,360
البته من توضیح خواهم داد که چرا
86
00:03:24,360 –> 00:03:27,240
درخواستها نمیتوانند وبسایتهایی را که صرفاً با جاوا اسکریپت ساخته شدهاند مدیریت کنند.
87
00:03:27,240 –> 00:03:30,240
من نمیتوانم واقعاً
88
00:03:30,240 –> 00:03:32,160
آموزشهای زیادی در مورد splash در وب پیدا کنم
89
00:03:32,160 –> 00:03:34,230
، نمیدانم چرا، زیرا برای من این
90
00:03:34,230 –> 00:03:36,240
ابزار عالی و قدرتمندی است که
91
00:03:36,240 –> 00:03:38,610
میتوان از آن با همه افراد استفاده کرد. همیشه
92
00:03:38,610 –> 00:03:41,340
از ایدههای ساده استفاده میکنید و از استفاده از ابزارهای جدید میترسید،
93
00:03:41,340 –> 00:03:44,040
اما به جای پاشش
94
00:03:44,040 –> 00:03:46,110
، چیزی به نام سلنیوم نیز وجود دارد که
95
00:03:46,110 –> 00:03:48,690
مرورگر را خودکار میکند – این همان چیزی است که اکثر
96
00:03:48,690 –> 00:03:50,970
مردم استفاده میکنند، حتی اگر سلنیوم
97
00:03:50,970 –> 00:03:53,160
برای خراش دادن به خوبی ساخته نشده باشد.
98
00:03:53,160 –> 00:03:55,080
من واقعاً نمیدانم این ایده به ذهنم خطور میکند،
99
00:03:55,080 –> 00:03:57,060
زیرا
100
00:03:57,060 –> 00:03:58,950
وقتی نوبت به خراش دادن وبسایتهای بزرگ
101
00:03:58,950 –> 00:04:01,230
برای پروژههای کوچک میرسد، میتوانیم عملکرد را تحمل کنیم،
102
00:04:01,230 –> 00:04:03,270
اما برای پروژههای بزرگ،
103
00:04:03,270 –> 00:04:04,770
اگرچه این یک راه حل کارآمد نیست.
104
00:04:04,770 –> 00:04:07,650
بنابراین به طور خلاصه این ابزارهایی بود که
105
00:04:07,650 –> 00:04:09,570
ما برای انجام وب اسکرپینگ استفاده کردیم، برخی از
106
00:04:09,570 –> 00:04:12,000
برنامه های افزودنی برای مرورگرها و برخی
107
00:04:12,000 –> 00:04:14,370
خدمات آنلاین رایگان و پولی وجود دارد که البته ما
108
00:04:14,370 –> 00:04:16,079
از آنها استفاده نمی کنیم زیرا هدف
109
00:04:16,079 –> 00:04:17,640
از این دوره آموزش نحوه
110
00:04:17,640 –> 00:04:19,709
دریافت کار بدون تکیه بر
111
00:04:19,709 –> 00:04:22,650
ابزارهای ایجاد شده توسط شخص دیگری انجام می شود، بنابراین
112
00:04:22,650 –> 00:04:24,360
تقریباً همه چیزهایی است که من سعی می کنم
113
00:04:24,360 –> 00:04:26,280
تا آنجا که می توانم خلاصه
114
00:04:26,280 –> 00:04:27,990
کنم در ویدیوی بعدی ما
115
00:04:27,990 –> 00:04:29,730
محیط توسعه خود را از ابتدا
116
00:04:29,730 –> 00:04:33,740
با استفاده از آخرین فناوری ها
117
00:04:34,340 –> 00:04:36,900
تنظیم می کنیم. با
118
00:04:36,900 –> 00:04:38,250
این دوره شما باید پایتون
119
00:04:38,250 –> 00:04:40,740
را روی کامپیوتر خود نصب کرده باشید و
120
00:04:40,740 –> 00:04:42,449
آخرین نسخه در زمان ضبط
121
00:04:42,449 –> 00:04:44,669
این ویدیو سه نقطه هفت نقطه
122
00:04:44,669 –> 00:04:46,800
سه است، این همان چیزی است که من از آن استفاده خواهم کرد،
123
00:04:46,800 –> 00:04:48,690
در آینده می توانید یک
124
00:04:48,690 –> 00:04:50,789
نسخه بالاتر را ببینید که کاملاً برای شما خوب است.
125
00:04:50,789 –> 00:04:52,680
البته می توانید از آن استفاده کنید، اما اگر
126
00:04:52,680 –> 00:04:54,810
قبلاً نسخه پایتون
127
00:04:54,810 –> 00:04:56,400
سه نقطه شش را روی رایانه خود نصب کرده اید،
128
00:04:56,400 –> 00:04:58,560
توصیه می کنم
129
00:04:58,560 –> 00:05:00,900
آن را نصب کنید و نسخه سه نقطه هفت را نصب کنید.
130
00:05:00,900 –> 00:05:03,990
هنگامی که آن را دانلود کردید، کافی
131
00:05:03,990 –> 00:05:07,650
است چک اجرایی را در
132
00:05:07,650 –> 00:05:09,389
مسیر سه نقطه هفت به پایتون باز کنید و سپس روی
133
00:05:09,389 –> 00:05:11,550
install now کلیک کنید، این تمام کاری است که در
134
00:05:11,550 –> 00:05:13,690
135
00:05:13,690 –> 00:05:15,890
حال حاضر باید انجام دهید تا
136
00:05:15,890 –> 00:05:18,020
تأیید کنید پایتون به درستی نصب شده است،
137
00:05:18,020 –> 00:05:20,390
فقط آن را باز کنید.
138
00:05:20,390 –> 00:05:25,210
خط فرمان و راهاندازی فرمان – space –
139
00:05:25,210 –> 00:05:28,490
این باید نسخه را خروجی دهد اگر
140
00:05:28,490 –> 00:05:30,680
خروجی نبود یا نسخه دیگری دریافت کردید به این
141
00:05:30,680 –> 00:05:32,240
معنی است که شما به درستی نصب نکردهاید و
142
00:05:32,240 –> 00:05:36,110
آنچه ما به آن نیاز داریم یک کد
143
00:05:36,110 –> 00:05:38,690
در نرمافزار برای نوشتن کد درست برخی
144
00:05:38,690 –> 00:05:41,330
افراد است. ترجیح می دهم از sublime text atom
145
00:05:41,330 –> 00:05:44,180
و برخی کدهای دیگر آن را در نرم افزار استفاده
146
00:05:44,180 –> 00:05:45,920
کنم، چیزی که در این دوره از آن استفاده خواهم کرد،
147
00:05:45,920 –> 00:05:48,530
این کد شگفت انگیز در نرم افزاری به نام
148
00:05:48,530 –> 00:05:52,070
کد ویژوال استودیو است، بنابراین
149
00:05:52,070 –> 00:05:55,970
برای انجام comm به کد نقطه V مراجعه کنید. خیلی سریع است.
150
00:05:55,970 –> 00:05:57,620
برخی از برنامههای افزودنی که در
151
00:05:57,620 –> 00:05:59,360
کنار این دوره استفاده میکنیم تا بهرهوری خود را افزایش دهیم
152
00:05:59,360 –> 00:06:01,640
و این برنامه چند پلتفرمی است
153
00:06:01,640 –> 00:06:04,130
به این معنی که میتوانید آن را تحت سیستمعاملهای مختلف نصب کنید،
154
00:06:04,130 –> 00:06:07,070
بنابراین نصبکننده را بگیرید
155
00:06:07,070 –> 00:06:08,740
و آن را روی دستگاه خود نصب کنید.
156
00:06:08,740 –> 00:06:11,990
شما این کار را انجام داده اید که فقط یک
157
00:06:11,990 –> 00:06:14,030
پوشه جدید در دسکتاپ یا هر چیزی که می
158
00:06:14,030 –> 00:06:15,950
خواهید به نام پروژه ها ایجاد کنید و سپس
159
00:06:15,950 –> 00:06:17,840
روی آن پوشه کلیک راست کنید و
160
00:06:17,840 –> 00:06:21,110
سپس open with code را انتخاب کنید.
161
00:06:21,110 –> 00:06:23,980
162
00:06:23,980 –> 00:06:26,930
کاربران احتمال میدهند
163
00:06:26,930 –> 00:06:29,419
که گزینه باز کردن با کد را نداشته باشید، بنابراین کاری
164
00:06:29,419 –> 00:06:31,160
که میتوانید انجام دهید این است که vs code را به صورت دستی اجرا کنید
165
00:06:31,160 –> 00:06:33,650
و سپس روی فایل کلیک کنید و سپس
166
00:06:33,650 –> 00:06:36,440
پوشه را باز کنید، پوشه پروژهها را انتخاب کنید و
167
00:06:36,440 –> 00:06:39,830
سپس روی پوشه انتخابی کلیک کنید،
168
00:06:39,830 –> 00:06:41,240
اکنون ما یک فایل را نصب میکنیم. برنامه افزودنی
169
00:06:41,240 –> 00:06:43,850
به نام کد Python MVS، بنابراین روی این آیکون افزونه ها کلیک کنید
170
00:06:43,850 –> 00:06:46,310
و سپس
171
00:06:46,310 –> 00:06:50,630
Python را جستجو کنید تا اولین مورد را باز کنید و
172
00:06:50,630 –> 00:06:52,729
مطمئن شوید که متعلق به مایکروسافت است و سپس
173
00:06:52,729 –> 00:06:54,830
دکمه نصب را می بینید، فقط
174
00:06:54,830 –> 00:06:58,490
روی آن کلیک کنید و سپس کد بعدی را دوباره بارگیری کنید.
175
00:06:58,490 –> 00:07:00,380
مرحله این است که ما باید یک
176
00:07:00,380 –> 00:07:02,210
محیط مجازی ایجاد کنیم تا تمام
177
00:07:02,210 –> 00:07:04,490
بسته هایی را که می توانیم در این دوره استفاده کنیم، بسازیم،
178
00:07:04,490 –> 00:07:06,710
می توانیم از Python V استفاده کنیم و به عنوان مثال برای این
179
00:07:06,710 –> 00:07:08,870
کار یا بسته محیط مجازی را انجام دهیم،
180
00:07:08,870 –> 00:07:10,790
اما من آخرین راه ایجاد virtua را به شما نشان خواهم داد.
181
00:07:10,790 –> 00:07:12,860
l محیط های
182
00:07:12,860 –> 00:07:16,150
پایتون، پس بیایید برای مشاهده و سپس
183
00:07:16,150 –> 00:07:20,270
ترمینال، متوجه شوید میانبر ctrl + u
184
00:07:20,270 –> 00:07:22,729
با لهجه است، این میانبری است که باید
185
00:07:22,729 –> 00:07:24,740
ترمینال را باز کنم و این همان
186
00:07:24,740 –> 00:07:26,960
چیزی است که دفعه بعد از آن استفاده خواهم کرد، پس
187
00:07:26,960 –> 00:07:30,169
بیایید روی ترمینال کلیک کنیم و یک بسته را نصب کنیم.
188
00:07:30,169 –> 00:07:33,310
به نام pip end بنابراین pip install
189
00:07:33,310 –> 00:07:37,430
pip و ENTER را فشار دهید پس از نصب افراد،
190
00:07:37,430 –> 00:07:39,139
ما میتوانیم
191
00:07:39,139 –> 00:07:42,440
با استفاده از دستور pip و
192
00:07:42,440 –> 00:07:45,590
space
193
00:07:45,590 –> 00:07:47,180
194
00:07:47,180 –> 00:07:49,940
shell یک محیط مجازی ایجاد کنیم. اکنون با
195
00:07:49,940 –> 00:07:52,580
موفقیت محیط مجازی را در
196
00:07:52,580 –> 00:07:54,350
اکسپلورر پروژه خود ایجاد کردهاید، باید یک
197
00:07:54,350 –> 00:07:56,990
فایل پیپ را ببینید که به نظر میرسد ما
198
00:07:56,990 –> 00:07:59,300
بخش بستههای dip را
199
00:07:59,300 –> 00:08:01,789
داریم و بخش بستههای تولید را داریم و
200
00:08:01,789 –> 00:08:04,639
نسخه پایتون را داریم که اکنون از آن به عنوان
201
00:08:04,639 –> 00:08:06,740
بسته توسعه استفاده میکنیم. من از pilant
202
00:08:06,740 –> 00:08:09,740
و auto-peep eight pilant برای خطا در
203
00:08:09,740 –> 00:08:11,330
برجسته کردن آن واقعا مفید است و
204
00:08:11,330 –> 00:08:13,669
خودکار peep eight برای پیروی از
205
00:08:13,669 –> 00:08:16,699
استاندارد لوله هشت در پایتون استفاده می شود، بنابراین در
206
00:08:16,699 –> 00:08:17,419
ترمینال
207
00:08:17,419 –> 00:08:23,330
بیایید پی پال را انجام دهیم. tall by lint space
208
00:08:23,330 –> 00:08:28,820
auto pip eight و سپس – – dev زیرا
209
00:08:28,820 –> 00:08:30,830
همانطور که گفتم این دو فقط برای
210
00:08:30,830 –> 00:08:35,360
اهداف توسعه هستند بسیار خوب
211
00:08:35,360 –> 00:08:37,820
توجه کنید Pyland و auto-peep
212
00:08:37,820 –> 00:08:40,159
e8 اکنون در زیر بسته های توسعه لیست شده اند و
213
00:08:40,159 –> 00:08:43,219
مهمتر از آن می توانیم از
214
00:08:43,219 –> 00:08:46,279
l xml برای استفاده استفاده کنیم. صفحات وب HTML را به درستی تجزیه کنید و
215
00:08:46,279 –> 00:08:48,350
در ابتدا با چند
216
00:08:48,350 –> 00:08:51,110
فایل HTML ایجاد شده توسط من سروکار
217
00:08:51,110 –> 00:08:52,970
خواهیم داشت تا شما را با اصول
218
00:08:52,970 –> 00:08:56,240
راه اندازی و راه اندازی کنم.
219
00:08:56,240 –> 00:09:00,920
220
00:09:00,920 –> 00:09:02,990
در بستههای تولیدی،
221
00:09:02,990 –> 00:09:05,540
چون از گزینه – – dev استفاده نکردهایم،
222
00:09:05,540 –> 00:09:11,329
223
00:09:11,329 –> 00:09:13,430
پس از راهاندازی همه چیز خوب است، بیایید
224
00:09:13,430 –> 00:09:16,150
جلو برویم و یک پوشه جدید به نام fundamentals ایجاد کنیم
225
00:09:16,150 –> 00:09:20,390
و در داخل آن پوشه
226
00:09:20,390 –> 00:09:23,870
بیایید یک فایل جدید به نام app dot
227
00:09:23,870 –> 00:09:26,270
pi ایجاد کنیم. اکنون میتوانیم با
228
00:09:26,270 –> 00:09:29,360
L XML آزمایش کنیم، وقتی آن را باز میکنیم، متوجه میشویم که وقتی این
229
00:09:29,360 –> 00:09:32,390
فایل نقطه PI برنامه را باز میکنیم، یک پوشه جدید به نام dot
230
00:09:32,390 –> 00:09:34,820
vs code در
231
00:09:34,820 –> 00:09:37,459
اکسپلورر پروژه فهرست شده است که حاوی فایلی
232
00:09:37,459 –> 00:09:40,350
به نام تنظیمات نقطه JSON
233
00:09:40,350 –> 00:09:43,199
این یکی ساخته شده است. به طور خودکار با
234
00:09:43,199 –> 00:09:45,990
کد در مقابل تمام چیزی که در آن وجود دارد مسیر
235
00:09:45,990 –> 00:09:48,389
محیط مجازی ما است که در حال حاضر pip
236
00:09:48,389 –> 00:09:49,889
amp یک محیط مجازی
237
00:09:49,889 –> 00:09:52,860
در زیر C Drive من پوشه کاربران و
238
00:09:52,860 –> 00:09:55,110
سپس نام کاربری من و سپس نقطه
239
00:09:55,110 –> 00:09:58,620
عملاً پوشه Envy و پیپ اطلاعیه
240
00:09:58,620 –> 00:10:00,410
نام مجازی را ایجاد کرده است.
241
00:10:00,410 –> 00:10:04,589
پروژههای محیطی بهعلاوه یک عدد تصادفی و
242
00:10:04,589 –> 00:10:06,690
چیزی که من در مورد افراد دوست دارم، توانایی
243
00:10:06,690 –> 00:10:08,880
ایجاد و تولید خودکار
244
00:10:08,880 –> 00:10:11,699
محیطهای مجازی بهعلاوه توانایی
245
00:10:11,699 –> 00:10:13,550
جداسازی بین بستههای توسعهدهنده و
246
00:10:13,550 –> 00:10:16,680
بستههای تولیدی است، بنابراین این
247
00:10:16,680 –> 00:10:18,360
همه چیز برای این ویدیو در بخش بعدی بود
248
00:10:18,360 –> 00:10:19,800
که میخواهیم آن را بررسی کنیم. همه خوب شروع به یادگیری در مورد
249
00:10:19,800 –> 00:10:22,699
lxm کنید،
250
00:10:24,080 –> 00:10:26,970
بنابراین کاری که
251
00:10:26,970 –> 00:10:28,500
ما در این بخش انجام می دهیم این است که
252
00:10:28,500 –> 00:10:30,750
کمی با اصول اصلی LX ml آزمایش می کنیم
253
00:10:30,750 –> 00:10:33,060
و برای این منظور
254
00:10:33,060 –> 00:10:35,580
شما به عنوان یک منبع قابل دانلود برای
255
00:10:35,580 –> 00:10:38,399
این ویدیو یک فایل فشرده را پیدا خواهید کرد که حاوی یک
256
00:10:38,399 –> 00:10:41,490
پوشه به نام SRC با یک فایل HTML
257
00:10:41,490 –> 00:10:44,190
در داخل آن، بنابراین به دانلود فایل فشرده ای
258
00:10:44,190 –> 00:10:46,350
که اضافه کردم آن را استخراج کنید و
259
00:10:46,350 –> 00:10:48,630
سپس همه چیز را در داخل آن قرار دهید.
260
00:10:48,630 –> 00:10:51,810
پوشه اصولی اکنون این فایل HTML اساساً
261
00:10:51,810 –> 00:10:54,899
یک صفحه وب HTML است و همانطور که می بینید
262
00:10:54,899 –> 00:10:57,630
حاوی یک تگ پاراگراف است، یکی
263
00:10:57,630 –> 00:10:59,820
شما تگ یا عنصری را اضافه می کنید که مخفف یک
264
00:10:59,820 –> 00:11:02,910
لیست مرتب شده است و در آن عنصر UL
265
00:11:02,910 –> 00:11:06,089
ما باید مواردی را لیست کنیم که مورد دوم وجود
266
00:11:06,089 –> 00:11:08,250
دارد. حاوی یک تگ لنگر است که
267
00:11:08,250 –> 00:11:11,640
اساساً یک پیوند است البته اگر
268
00:11:11,640 –> 00:11:14,190
HTML را نمیدانید مشکل بزرگی نیست، اما
269
00:11:14,190 –> 00:11:15,990
فقط میخواهم به شما اطلاع دهم که یک
270
00:11:15,990 –> 00:11:18,510
وبسایت از برخی تگها یا عناصری تشکیل شده است
271
00:11:18,510 –> 00:11:20,730
که اکنون در این فایل داریم. اگر میخواهید
272
00:11:20,730 –> 00:11:22,770
این فایل HTML را پیشنمایش کنید، میتوانید ادامه دهید
273
00:11:22,770 –> 00:11:24,870
و برگه افزونهها را باز کنید
274
00:11:24,870 –> 00:11:27,560
و پسوندی به نام سرور زنده را جستجو
275
00:11:27,560 –> 00:11:32,580
276
00:11:32,580 –> 00:11:36,300
277
00:11:36,300 –> 00:11:39,690
کنید.
278
00:11:39,690 –> 00:11:42,529
و سپس open with live server را انتخاب کنید،
279
00:11:42,529 –> 00:11:45,420
این یک سرور سبک
280
00:11:45,420 –> 00:11:50,089
در این آدرس یک 27001 با پورت
281
00:11:50,089 –> 00:11:53,970
5500 راه اندازی می کند و فایل HTML را برای شما خوب رندر می
282
00:11:53,970 –> 00:11:57,720
کند، بنابراین در اینجا این است که چگونه فایل HTML
283
00:11:57,720 –> 00:12:00,330
در یک مرورگر به نظر می رسد، می دانم که
284
00:12:00,330 –> 00:12:02,700
بسیار خسته کننده است اما همانطور که مادر قبلاً میدانم که من
285
00:12:02,700 –> 00:12:04,050
فقط میخواهم یک
286
00:12:04,050 –> 00:12:06,810
مقدمه ملایم با El XML به شما ارائه دهم، بنابراین مجبور شدم
287
00:12:06,810 –> 00:12:08,490
چیزی ساده ایجاد کنم،
288
00:12:08,490 –> 00:12:11,040
شما را گیج نکنید و برای ثبت شما بعداً
289
00:12:11,040 –> 00:12:13,980
میتوانیم با وبسایتهای کلمه واقعی شروع کنیم و
290
00:12:13,980 –> 00:12:16,740
اکنون به سراغ کد برگردیم، اجازه دهید با کلیک کردن، سرور را متوقف کنیم.
291
00:12:16,740 –> 00:12:20,370
اینجا زیباست، من می خواهم
292
00:12:20,370 –> 00:12:23,370
فایل خرید نقطه برنامه و فایل HTML
293
00:12:23,370 –> 00:12:26,040
را که به شما گفته بودم در کنار هم دانلود کنید، باز کنم،
294
00:12:26,040 –> 00:12:28,740
پس بیایید این را به این شکل زیبا اینجا بیاوریم،
295
00:12:28,740 –> 00:12:31,500
هم اکنون در
296
00:12:31,500 –> 00:12:34,050
فایل نقطه pi برنامه ما، کاری که می خواهیم انجام دهیم این است که به el.
297
00:12:34,050 –> 00:12:36,870
XML برای باز کردن این فایل HTML تا بتوانیم آن
298
00:12:36,870 –> 00:12:37,329
را روشن کنیم،
299
00:12:37,329 –> 00:12:40,389
بنابراین در بالا باید یک
300
00:12:40,389 –> 00:12:41,529
ماژول به
301
00:12:41,529 –> 00:12:47,499
نام درخت را وارد کنیم، بنابراین از L XML یک درخت را وارد کنید
302
00:12:47,499 –> 00:12:50,110
اکنون ماژول h3 متدی به نام قطعات دارد،
303
00:12:50,110 –> 00:12:53,499
بنابراین بیایید آن را تجزیه قطعه نقطه درختی صدا کنیم.
304
00:12:53,499 –> 00:12:56,220
305
00:12:56,220 –> 00:13:01,119
منبع تجزیه کننده و URL پایه را به عنوان آرگومان می گیرد، این دو
306
00:13:01,119 –> 00:13:03,069
مورد نیاز نیستند زیرا می بینید که
307
00:13:03,069 –> 00:13:06,279
هر دو روی هیچ تنظیم شده اند، در حالی که پارامتر منبع
308
00:13:06,279 –> 00:13:08,319
یا آرگومان که اساساً
309
00:13:08,319 –> 00:13:10,600
می تواند یک شی فایل یا مسیری به
310
00:13:10,600 –> 00:13:13,239
فایل HTML هدف باشد مورد نیاز است. بنابراین
311
00:13:13,239 –> 00:13:15,879
در حال حاضر HTML fi ما le
312
00:13:15,879 –> 00:13:18,160
برای آنها درون اصول است و درون این
313
00:13:18,160 –> 00:13:20,230
پوشه فاندامنتال ما منبع را
314
00:13:20,230 –> 00:13:24,910
داریم و سپس فایل HTML را داریم، بنابراین
315
00:13:24,910 –> 00:13:28,059
درون متد تجزیه و به عنوان یک
316
00:13:28,059 –> 00:13:34,299
رشته، منبع را روی fundamentals/SRC/web قرار می دهیم
317
00:13:34,299 –> 00:13:38,559
و صفحه خط را نقطه HTML می کنیم.
318
00:13:38,559 –> 00:13:40,809
نوع برگشتی متد تجزیه
319
00:13:40,809 –> 00:13:43,869
یک شیء ابتدایی خواهد بود، اجازه دهید من به شما نشان دهم، بنابراین
320
00:13:43,869 –> 00:13:45,549
بیایید همه چیز را در متغیری
321
00:13:45,549 –> 00:13:50,110
به نام درخت ذخیره کنیم و سپس متأسفانه
322
00:13:50,110 –> 00:13:54,429
چاپ کنیم و سپس درخت ctrl s را چاپ کنیم تا
323
00:13:54,429 –> 00:13:57,100
فایل ذخیره شود، حالا بیایید فایلی را که می توانید
324
00:13:57,100 –> 00:14:01,329
مشاهده کنید اجرا کنیم و سپس ترمینال یا می توانید
325
00:14:01,329 –> 00:14:04,689
از میانبر ctrl + u با لهجه استفاده کنید، بنابراین
326
00:14:04,689 –> 00:14:06,489
من از میانبر ctrl شما
327
00:14:06,489 –> 00:14:09,819
با لهجه استفاده می کنم و اگر
328
00:14:09,819 –> 00:14:11,470
محیط مجازی بین دو
329
00:14:11,470 –> 00:14:14,139
پرانتز را نمی بینید، تنها کاری که باید انجام دهید این است که آن را
330
00:14:14,139 –> 00:14:16,749
ببندید یا بکشید. ترمینال فعلی و
331
00:14:16,749 –> 00:14:20,199
سپس همان مراحل را دوباره انجام دهید حالا بیایید
332
00:14:20,199 –> 00:14:23,889
فایل را اجرا کنیم برنامه اصول پایتون.
333
00:14:23,889 –> 00:14:28,509
334
00:14:28,509 –> 00:14:31,839
335
00:14:31,839 –> 00:14:34,809
336
00:14:34,809 –> 00:14:37,360
mple HTML
337
00:14:37,360 –> 00:14:40,540
یا هر چیز دیگری را به خوبی انجام دهید
338
00:14:40,540 –> 00:14:43,179
زیرا روش تجزیه
339
00:14:43,179 –> 00:14:45,610
واقعاً این فایل HTML را می گیرد و آن را به یک درخت تبدیل می کند،
340
00:14:45,610 –> 00:14:48,970
بنابراین از نظر ما یک
341
00:14:48,970 –> 00:14:51,430
فایل HTML فقط یک فایل HTML است که مقداری
342
00:14:51,430 –> 00:14:54,310
داخل آن است که ما آن را به این شکل می بینیم، اما
343
00:14:54,310 –> 00:14:57,279
XML یک فایل HTML بهعنوان درختی از
344
00:14:57,279 –> 00:15:00,640
عناصر در نظر گرفته میشود، اجازه دهید به شما نشان دهم، بنابراین وقتی
345
00:15:00,640 –> 00:15:03,940
روش قطعات را فراخوانی میکنیم، این فایل HTML
346
00:15:03,940 –> 00:15:06,460
به چیزی شبیه به این تبدیل میشود، بنابراین
347
00:15:06,460 –> 00:15:08,920
ساختار درختی داریم که
348
00:15:08,920 –> 00:15:11,140
تمام تگهای HTML را به اشیاء عنصر تبدیل میکند.
349
00:15:11,140 –> 00:15:14,710
ما شی عنصر HTML
350
00:15:14,710 –> 00:15:16,779
را داریم که دارای ویژگی به نام
351
00:15:16,779 –> 00:15:19,120
پیوند برای زبان است که به عنوان
352
00:15:19,120 –> 00:15:21,700
فرزند آن عنصر HTML در نظر گرفته می شود و
353
00:15:21,700 –> 00:15:23,710
علاوه بر آن این شی عنصر HTML
354
00:15:23,710 –> 00:15:27,100
دارای سر و بدنه به عنوان فرزندان مستقیم است،
355
00:15:27,100 –> 00:15:29,920
اکنون نیز شی عنصر head
356
00:15:29,920 –> 00:15:31,990
حاوی عنصر عنوان است. شیء بهعنوان
357
00:15:31,990 –> 00:15:34,420
کودک، با توجه به این که گفته میشود،
358
00:15:34,420 –> 00:15:36,880
شی عنصر عنوان نیز دارای متن
359
00:15:36,880 –> 00:15:40,990
است، این عنوان به عنوان فرزند بعدی،
360
00:15:40,990 –> 00:15:43,330
عنصر بدنه دارای
361
00:15:43,330 –> 00:15:45,790
شیء عنصر پاراگراف و عنصر UL
362
00:15:45,790 –> 00:15:49,150
obj است. ect و غیره در حال حاضر دلیل
363
00:15:49,150 –> 00:15:51,580
اینکه آنها از یک ساختار داده درخت مانند استفاده می کنند
364
00:15:51,580 –> 00:15:53,710
و نه برخی از ساختارهای داده دیگر مانند
365
00:15:53,710 –> 00:15:56,380
آرایه ها و لیست پیوندی این است
366
00:15:56,380 –> 00:15:58,810
که ساختار داده درختی
367
00:15:58,810 –> 00:16:01,750
عمدتاً برای ذخیره اطلاعاتی استفاده می شود که
368
00:16:01,750 –> 00:16:04,660
به طور طبیعی سلسله مراتبی مانند
369
00:16:04,660 –> 00:16:07,060
والد را تشکیل می دهد. رابطه فرزند
370
00:16:07,060 –> 00:16:09,490
حالا اگر میخواهید
371
00:16:09,490 –> 00:16:12,400
آنچه را که در داخل شی ابتدایی است خروجی بگیرید،
372
00:16:12,400 –> 00:16:17,260
میتوانیم یک نقطه درخت را به رشته فراخوانی کنیم و سپس
373
00:16:17,260 –> 00:16:20,440
درخت را به عنوان آرگومان ctrl s
374
00:16:20,440 –> 00:16:22,600
برای ذخیره فایل ارسال میکنیم و
375
00:16:22,600 –> 00:16:26,950
بیایید دوباره آن را اجرا کنیم.
376
00:16:26,950 –> 00:16:29,770
بازگشت به عقب همان نشانه گذاری HTML موجود
377
00:16:29,770 –> 00:16:32,560
در فایل HTML ما است، اکنون قبل از
378
00:16:32,560 –> 00:16:34,420
پایان دادن به این ویدیو،
379
00:16:34,420 –> 00:16:37,150
ترفندهایی را در مورد کد در مقابل به شما نشان می دهم، بنابراین هر
380
00:16:37,150 –> 00:16:38,950
بار که می خواهیم اسکریپت خود را اجرا کنیم،
381
00:16:38,950 –> 00:16:41,380
باید فایل را باز ذخیره کنیم. ترمینال
382
00:16:41,380 –> 00:16:43,270
و سپس راهاندازی دستور
383
00:16:43,270 –> 00:16:46,420
برنامه اصول پایتون با این کار بسیار
384
00:16:46,420 –> 00:16:48,279
زمانبر است، بنابراین برای افزایش
385
00:16:48,279 –> 00:16:51,070
بهرهوری و خلاصه کردن تمام این
386
00:16:51,070 –> 00:16:53,380
مراحل در یک میانبر صفحه کلید،
387
00:16:53,380 –> 00:16:55,810
از یک برنامه افزودنی شگفتانگیز به نام co استفاده میکنیم. de
388
00:16:55,810 –> 00:16:58,510
runner بنابراین در زبانه افزونه ها
389
00:16:58,510 –> 00:17:03,209
کد runner را جستجو کنید
390
00:17:04,200 –> 00:17:07,089
، اولین مورد را باز کنید و بعد از نصب
391
00:17:07,089 –> 00:17:10,300
آن را نصب کنید، ctrl shift P را فشار دهید
392
00:17:10,300 –> 00:17:12,970
تا پالت فرمان
393
00:17:12,970 –> 00:17:17,250
باز شود و سپس تنظیمات کاربر باز را جستجو یا تایپ کنید
394
00:17:17,250 –> 00:17:22,630
و سپس روی آن کلیک کنید. پرانتزهای فرفری
395
00:17:22,630 –> 00:17:25,839
با کامل،
396
00:17:25,839 –> 00:17:28,930
اکنون فایل HTML را میبندم، کاری که باید انجام دهیم این است
397
00:17:28,930 –> 00:17:31,450
که اجرای کد را برای کار با
398
00:17:31,450 –> 00:17:33,490
محیط مجازی که با استفاده از pip f4 ایجاد کردهایم، پیکربندی کنیم.
399
00:17:33,490 –> 00:17:36,970
400
00:17:36,970 –> 00:17:39,610
401
00:17:39,610 –> 00:17:42,220
منبعی برای این سخنرانی است، بنابراین
402
00:17:42,220 –> 00:17:45,460
این اولین مورد اساساً
403
00:17:45,460 –> 00:17:48,490
به اجراکننده کد میگوید که فایل پایتون فعلی
404
00:17:48,490 –> 00:17:52,630
را با استفاده از فایل اجرایی پایتون از
405
00:17:52,630 –> 00:17:54,190
محیط مجازی که
406
00:17:54,190 –> 00:17:57,660
با استفاده از pip F ایجاد کردهایم اجرا کند و نام فایل را به آن اضافه کند
407
00:17:57,660 –> 00:18:01,270
اکنون این دستور دوم اساساً
408
00:18:01,270 –> 00:18:03,850
هر بار خروجی را پاک میکند. ما
409
00:18:03,850 –> 00:18:07,060
فایل را اجرا می کنیم و آخرین مورد اساساً
410
00:18:07,060 –> 00:18:09,640
به اجرای کد می گوید
411
00:18:09,640 –> 00:18:12,430
که قبل
412
00:18:12,430 –> 00:18:14,710
از اجرای فایل به
413
00:18:14,710 –> 00:18:17,580
طور خودکار آن را ذخیره کند. سطح m و غیره،
414
00:18:17,580 –> 00:18:20,290
بنابراین مطمئن شوید که هر سه دستور را چسبانده اید
415
00:18:20,290 –> 00:18:22,630
و سپس ctrl s را برای ذخیره
416
00:18:22,630 –> 00:18:25,930
فایل وارد کرده اید حالا به فایل app dot
417
00:18:25,930 –> 00:18:29,290
buy برگردیم و برای اجرای آن می توانیم
418
00:18:29,290 –> 00:18:33,490
روی این نماد در اینجا کلیک کنیم یا می توانیم ctrl alt را فشار دهیم
419
00:18:33,490 –> 00:18:37,270
و در اینجا خروجی ای است که به طور متناوب دریافت می کنیم
420
00:18:37,270 –> 00:18:40,180
تا این پنجره خروجی را مخفی
421
00:18:40,180 –> 00:18:43,150
کنیم، می توانیم ctrl J را فشار دهیم، بنابراین این
422
00:18:43,150 –> 00:18:44,800
همه چیزی بود که می خواستم در این ویدیو به شما آموزش دهم،
423
00:18:44,800 –> 00:18:47,080
در ویدیوی بعدی خواهیم دید که چگونه
424
00:18:47,080 –> 00:18:49,000
می توانیم آنچه را که در داخل عناصر وجود دارد،
425
00:18:49,000 –> 00:18:51,160
همه آن ها را از آن استخراج کنیم. شی درخت عنصر
426
00:18:51,160 –> 00:18:59,350
صفحه وب HTML ما خوب است، بنابراین
427
00:18:59,350 –> 00:19:01,150
بیایید بگوییم این بار می
428
00:19:01,150 –> 00:19:04,360
خواهیم عنوان را از صفحه وب HTML خود استخراج کنیم یا به عبارت دیگر حذف
429
00:19:04,360 –> 00:19:07,060
کنیم، بنابراین چگونه می توانیم این کار را به
430
00:19:07,060 –> 00:19:09,700
خوبی انجام دهیم زیرا اکنون یک
431
00:19:09,700 –> 00:19:12,310
شی درخت عنصر داریم به این معنی که ما داریم چند
432
00:19:12,310 –> 00:19:14,560
روشی که در معرض دید ما قرار می گیرند، به
433
00:19:14,560 –> 00:19:17,020
عنوان مثال برای انتخاب عنوان
434
00:19:17,020 –> 00:19:20,560
از صفحه HTML خود، می توانیم شی درختی خود را فراخوانی کنیم
435
00:19:20,560 –> 00:19:23,740
و سپس از متد find استفاده می کنیم،
436
00:19:23,740 –> 00:19:26,290
اکنون متد find مسیر عنصر یا نوع مورد نظر را به عنوان آرگومان می گیرد.
437
00:19:26,290 –> 00:19:29,170
438
00:19:29,170 –> 00:19:32,440
این را در نشانه گذاری HTML ما انتخاب کنید ما می دانیم
439
00:19:32,440 –> 00:19:35,890
که عنوان در داخل تگ head قرار دارد، بنابراین
440
00:19:35,890 –> 00:19:38,650
در متد find، رشته ای را تایپ می کنیم،
441
00:19:38,650 –> 00:19:43,600
مسیر عنوان را تایپ می کنیم، بنابراین عنوان اسلش داشت، این
442
00:19:43,600 –> 00:19:45,910
عبارت یک شی عنصر از نوع عنوان را برمی گرداند،
443
00:19:45,910 –> 00:19:48,070
بنابراین بیایید همه چیز را
444
00:19:48,070 –> 00:19:51,130
در متغیری به نام title و عنصر خط ذخیره کنیم.
445
00:19:51,130 –> 00:19:55,450
و اجازه دهید عنوان و
446
00:19:55,450 –> 00:19:58,660
عنصر خط را ctrl alt چاپ کنیم و برای اجرا و
447
00:19:58,660 –> 00:20:01,750
voila، یک شی عنصر از نوع
448
00:20:01,750 –> 00:20:04,480
title دریافت کردیم، اکنون اگر بخواهیم
449
00:20:04,480 –> 00:20:07,840
مقدار واقعی عنوان را چاپ کنیم، میتوانیم
450
00:20:07,840 –> 00:20:11,350
ویژگی text را در مقابل عنصر عنوان صدا کنیم، اجازه دهید
451
00:20:11,350 –> 00:20:14,890
دوباره اجرا شود و voila ما این را به عنوان عنوان دریافت کنید
452
00:20:14,890 –> 00:20:17,590
حالا اجازه دهید از شما یک سوال بپرسم که
453
00:20:17,590 –> 00:20:20,800
چرا در مسیری که
454
00:20:20,800 –> 00:20:21,880
در متد find مشخص
455
00:20:21,880 –> 00:20:25,840
کردم از تگ HTML
456
00:20:25,840 –> 00:20:29,440
شروع نکردم در عوض از تگ head شروع کردم تا عنوان را دریافت کنم
457
00:20:29,440 –> 00:20:31,780
زیرا به وضوح می توانیم اینجا را ببینیم.
458
00:20:31,780 –> 00:20:34,960
که تگ عنوان در داخل
459
00:20:34,960 –> 00:20:38,920
تگ head و تگ head در داخل تگ HTML است
460
00:20:38,920 –> 00:20:41,770
خوب می توانیم از تگ HTML شروع
461
00:20:41,770 –> 00:20:44,500
کنیم در عوض همیشه باید از یکی
462
00:20:44,500 –> 00:20:47,170
از فرزندان مستقیم آن شروع کنیم به عنوان مثال اگر
463
00:20:47,170 –> 00:20:49,720
می خواهید این تگ پاراگراف را انتخاب کنید.
464
00:20:49,720 –> 00:20:52,300
باید از بدنه شروع کنید زیرا
465
00:20:52,300 –> 00:20:55,450
بدن فرزند مستقیم تگ HTML است،
466
00:20:55,450 –> 00:20:58,150
اکنون به عنوان یک چالش، میخواهم
467
00:20:58,150 –> 00:21:03,220
این تگ پاراگراف را با استفاده از روش Find انتخاب کنید
468
00:21:03,220 –> 00:21:06,580
و متن hello world شما
469
00:21:06,580 –> 00:21:10,260
10 ثانیه زمان دارید، پس سریع
470
00:21:14,740 –> 00:21:16,800
باشید.
471
00:21:17,720 –> 00:21:20,720
برای انتخاب تگ پاراگراف،
472
00:21:20,720 –> 00:21:26,840
سه نقطه را پیدا می کنیم
473
00:21:26,840 –> 00:21:28,669
و مسیر آن تگ پاراگراف را مشخص می کنیم
474
00:21:28,669 –> 00:21:34,490
که اتفاقا body /p بود، بیایید
475
00:21:34,490 –> 00:21:35,840
همه چیز را در متغیری به نام
476
00:21:35,840 –> 00:21:42,669
عنصر پاراگراف ذخیره کنیم و
477
00:21:42,669 –> 00:21:47,269
بیایید متن نقطه نقطه عنصر پاراگراف را چاپ کنیم،
478
00:21:47,269 –> 00:21:50,659
یک فایل را اجرا کنیم و این کار را انجام می دهیم. در واقع دریافت hello world
479
00:21:50,659 –> 00:21:54,440
اکنون یک جایگزین برای متد find ما
480
00:21:54,440 –> 00:21:57,500
یک روش دیگر داریم به نام find all که
481
00:21:57,500 –> 00:21:59,809
با نامش میتوانیم بفهمیم که
482
00:21:59,809 –> 00:22:02,389
تمام تگهای منطبق را پیدا میکند و
483
00:22:02,389 –> 00:22:06,259
آنها را به عنوان لیستی از اشیاء عنصر برمیگرداند، به
484
00:22:06,259 –> 00:22:09,070
عنوان مثال برای انتخاب همه موارد لیست
485
00:22:09,070 –> 00:22:12,919
که در داخل این عنصر UL قرار داریم،
486
00:22:12,919 –> 00:22:16,009
باید از متد find all استفاده کنیم، زیرا اگر
487
00:22:16,009 –> 00:22:18,740
از متد find استفاده کنیم، در
488
00:22:18,740 –> 00:22:22,190
نهایت فقط این اولین مورد لیست را دریافت می
489
00:22:22,190 –> 00:22:25,789
کنیم، بنابراین بیایید یک متغیر به نام لیست و
490
00:22:25,789 –> 00:22:30,980
آیتم های خط ایجاد کنیم. برابر با 3 نقطه همه را پیدا کنید
491
00:22:30,980 –> 00:22:34,279
و در داخل آن مسیر آیتم های لیست خود را مشخص می کنیم
492
00:22:34,279 –> 00:22:38,059
، بنابراین از بدنه شروع می کنیم و
493
00:22:38,059 –> 00:22:43,009
سپس ul را به تگ های Li پایین می آوریم حالا بیایید
494
00:22:43,009 –> 00:22:48,320
لیست و آیتم های خط را چاپ کنیم و همانطور که
495
00:22:48,320 –> 00:22:51,440
می بینید لیستی از دو مورد دریافت کردیم.
496
00:22:51,440 –> 00:22:55,129
اشیاء عنصر از نوع Li اکنون چون
497
00:22:55,129 –> 00:22:57,470
ما یک لیست داریم به این معنی است که می توانیم از طریق
498
00:22:57,470 –> 00:23:00,169
هر شیء عنصر تکرار کنیم تا مقدار متن را استخراج کنیم،
499
00:23:00,169 –> 00:23:05,330
بنابراین برای یک لیست دروغ و
500
00:23:05,330 –> 00:23:10,759
آیتم های خط متن Li dot را چاپ می کنیم، بیایید
501
00:23:10,759 –> 00:23:15,440
فایل را اجرا کنیم و برای لیست اول متوجه شویم.
502
00:23:15,440 –> 00:23:19,220
موردی که مقدار متن کامل را دریافت کردیم، اما
503
00:23:19,220 –> 00:23:22,129
برای آیتم فهرست دوم فقط
504
00:23:22,129 –> 00:23:25,909
توسط آن ایجاد میشویم، بنابراین اگر به فایل HTML خود نگاهی بیندازیم،
505
00:23:25,909 –> 00:23:28,789
میتوانیم ببینیم که
506
00:23:28,789 –> 00:23:31,580
مورد فهرست دوم در واقع
507
00:23:31,580 –> 00:23:36,080
یک برچسب دیگر با نام من
508
00:23:36,080 –> 00:23:38,420
و دلیل آن دارد. چرا ما حجم متن کامل را دریافت نکردیم به
509
00:23:38,420 –> 00:23:41,240
این دلیل است که در
510
00:23:41,240 –> 00:23:44,660
روش Find all ما به L XML توضیح دادیم که فقط
511
00:23:44,660 –> 00:23:47,420
میخواهیم تمام موارد فهرست را دریافت کنیم که برایمان
512
00:23:47,420 –> 00:23:49,610
مهم نیست که یک برچسب درون آن وجود دارد یا
513
00:23:49,610 –> 00:23:52,640
چیز دیگری. یک راه حل سریع که می توانیم
514
00:23:52,640 –> 00:23:55,370
اعمال کنیم این است که در داخل حلقه for می
515
00:23:55,370 –> 00:23:59,390
توانیم متغیری به نام ایجاد کنیم a برابر با L است.
516
00:23:59,390 –> 00:24:02,630
این بار از
517
00:24:02,630 –> 00:24:05,210
شی عنصر Li استفاده می کنم نه از
518
00:24:05,210 –> 00:24:07,940
شی عنصر درختی و سپس در داخل find
519
00:24:07,940 –> 00:24:11,050
me فکر می کنم فقط می خواهیم یک عنصر V بگیریم،
520
00:24:11,050 –> 00:24:14,690
بنابراین اگر یک تگ لنگر
521
00:24:14,690 –> 00:24:17,510
در داخل این Ally وجود داشته باشد، a مقدار متغیر
522
00:24:17,510 –> 00:24:20,750
یک شی عنصر از نوع a other
523
00:24:20,750 –> 00:24:24,440
a روی هیچ تنظیم می شود، بنابراین بر اساس این
524
00:24:24,440 –> 00:24:27,350
منطق می توانیم یک دستور F پایه بنویسیم
525
00:24:27,350 –> 00:24:33,800
اگر a نیست هیچ، به این معنی است که یک A
526
00:24:33,800 –> 00:24:39,560
در داخل آیتم لیستی که چاپ می کنیم وجود دارد. من از آن استفاده خواهم کرد.
527
00:24:39,560 –> 00:24:41,660
فرمت رشته Python 3 که
528
00:24:41,660 –> 00:24:43,460
باید با آن آشنا باشید، بنابراین بیایید
529
00:24:43,460 –> 00:24:48,440
با F دو گیومه شروع کنیم، دو بریس مجعد Li
530
00:24:48,440 –> 00:24:52,490
dot txt بهم پیوسته با دو پرانتز مجعد،
531
00:24:52,490 –> 00:24:58,400
یک نقطه txt در غیر این صورت به این معنی است که اگر یک
532
00:24:58,400 –> 00:25:02,230
برچسب در داخل آیتم لیست وجود نداشته باشد، ما فقط چاپ می کنیم.
533
00:25:02,230 –> 00:25:07,840
Li dot txt بیایید این بار فایل و
534
00:25:07,840 –> 00:25:08,960
voila را
535
00:25:08,960 –> 00:25:11,990
اجرا کنیم که توسط ایجاد شدیم و سپس
536
00:25:11,990 –> 00:25:15,140
نام من متوجه شد که بین ایجاد شده توسط و
537
00:25:15,140 –> 00:25:18,020
نام من یک فضای خالی اضافی و
538
00:25:18,020 –> 00:25:21,620
یک خط جدید وجود دارد این اتفاق افتاده است زیرا در
539
00:25:21,620 –> 00:25:24,920
نشانه گذاری HTML ما این خط جدید را در اینجا داشته باشید
540
00:25:24,920 –> 00:25:29,420
و ما این فضای سفید خالی را داریم تا این را
541
00:25:29,420 –> 00:25:31,730
حذف کنیم و خروجی را که
542
00:25:31,730 –> 00:25:35,870
میتوانیم متد strip را در برابر
543
00:25:35,870 –> 00:25:39,080
ویژگی متن شی عنصر li بنامیم پاک کنیم، بیایید
544
00:25:39,080 –> 00:25:41,390
فایل را اجرا کنیم و voila
545
00:25:41,390 –> 00:25:45,280
این بار خروجی تمیزتر به نظر میرسد
546
00:25:45,280 –> 00:25:47,590
یکی از نکات منفی Aleks ml این است که
547
00:25:47,590 –> 00:25:49,600
از نظر روشهایی غنی نیست.
548
00:25:49,600 –> 00:25:51,310
از طریق شی ابتدایی در معرض ما قرار می گیرند
549
00:25:51,310 –> 00:25:54,250
و چیزی که من از
550
00:25:54,250 –> 00:25:56,890
آن متنفرم این است که هر بار که می
551
00:25:56,890 –> 00:25:59,260
خواهیم حمله را از نشانه گذاری HTML انتخاب کنیم،
552
00:25:59,260 –> 00:26:01,930
باید تگ مسیر مطلق را توسط Tyco مشخص کنیم، به
553
00:26:01,930 –> 00:26:04,540
عنوان مثال، همه موارد لیست
554
00:26:04,540 –> 00:26:06,670
را که می دانستیم انتخاب کنیم. باید
555
00:26:06,670 –> 00:26:10,990
از بدنه شروع کرد و سپس به متحد شدن این
556
00:26:10,990 –> 00:26:14,290
کار آسان بود، اما اگر
557
00:26:14,290 –> 00:26:16,600
با یک
558
00:26:16,600 –> 00:26:19,210
صفحه وب پیچیده HTML با هزاران و هزاران
559
00:26:19,210 –> 00:26:21,640
تگ در این سناریو سروکار داشتید، این رویکرد
560
00:26:21,640 –> 00:26:23,950
انتخاب خوبی نخواهد بود، بنابراین در سناریو بعدی چه میشود.
561
00:26:23,950 –> 00:26:25,390
ویدیوی من روش بهتری را
562
00:26:25,390 –> 00:26:27,580
به شما نشان می دهم که می توانید در هنگام برخورد
563
00:26:27,580 –> 00:26:30,430
با صفحات وب بزرگ یا پیچیده تر
564
00:26:30,430 –> 00:26:37,270
565
00:26:37,270 –> 00:26:38,710
566
00:26:38,710 –> 00:26:41,200
HTML استفاده کنید. m صفحات وب HTML
567
00:26:41,200 –> 00:26:43,180
و این بار ما از XPath استفاده می کنیم.
568
00:26:43,180 –> 00:26:45,730
می دانم که اکثر شما هرگز نام
569
00:26:45,730 –> 00:26:48,100
X را نشنیده اید اما قبلاً آن را به عنوان
570
00:26:48,100 –> 00:26:49,960
راهی کارآمدتر و انعطاف پذیرتر برای
571
00:26:49,960 –> 00:26:52,840
انتخاب برچسب ها و استخراج داده ها از
572
00:26:52,840 –> 00:26:55,150
صفحات وب HTML در نظر بگیرید. این ویدیو
573
00:26:55,150 –> 00:26:57,010
را به شما معرفی مختصری از
574
00:26:57,010 –> 00:26:59,410
XPath میدهم و در بخش بعدی
575
00:26:59,410 –> 00:27:01,180
به تفصیل آن را
576
00:27:01,180 –> 00:27:02,710
توضیح میدهم، بنابراین اگر همه چیز را متوجه نشدید که
577
00:27:02,710 –> 00:27:04,270
در چند دقیقه آینده توضیح میدهم، وحشت نکنید،
578
00:27:04,270 –> 00:27:06,400
خب زیرا همه چیز
579
00:27:06,400 –> 00:27:08,430
در بخش بعدی برای شما روشن می شود،
580
00:27:08,430 –> 00:27:11,800
بنابراین برای انتخاب تگ ها با استفاده از XPath در L XML
581
00:27:11,800 –> 00:27:15,460
می توانیم متد Find را با XPath جایگزین کنیم،
582
00:27:15,460 –> 00:27:18,040
اکنون متد XPath مسیر تگ هدف را مانند متد Find به عنوان آرگومان می گیرد،
583
00:27:18,040 –> 00:27:20,290
584
00:27:20,290 –> 00:27:22,690
اما چه چیزی خاص تر است.
585
00:27:22,690 –> 00:27:24,520
در مورد آن این است که ما نیازی به
586
00:27:24,520 –> 00:27:27,070
تعیین مسیر کامل مانند برچسب
587
00:27:27,070 –> 00:27:29,290
مانند روش Find نداریم، بنابراین برای انتخاب
588
00:27:29,290 –> 00:27:33,600
عنوان فقط باید عنوان را با اسلش دوبل بنویسیم
589
00:27:33,600 –> 00:27:37,210
و اگر
590
00:27:37,210 –> 00:27:40,210
کد خود را به این صورت اجرا کنیم، تمام است. یک
591
00:27:40,210 –> 00:27:42,970
شیء لیست خطای ویژگی فاقد
592
00:27:42,970 –> 00:27:45,790
متن مشخصه an d دلیل آن این است که
593
00:27:45,790 –> 00:27:48,130
روش XPath مانند
594
00:27:48,130 –> 00:27:51,100
روش findall عمل می کند، اما همیشه یک لیست را برمی گرداند،
595
00:27:51,100 –> 00:27:53,230
حتی اگر می دانیم که در
596
00:27:53,230 –> 00:27:56,770
نشانه گذاری HTML ما فقط یک برچسب عنوان داریم،
597
00:27:56,770 –> 00:27:58,640
بنابراین برای اینکه بتوانیم به متن
598
00:27:58,640 –> 00:28:01,220
d دسترسی پیدا کنیم، باید به اولین تگ دسترسی پیدا کنیم. آیتم
599
00:28:01,220 –> 00:28:03,950
در لیست با روش XPath برگردانده شده است، بنابراین
600
00:28:03,950 –> 00:28:07,940
دو براکت و سپس 0 بیایید
601
00:28:07,940 –> 00:28:10,910
دوباره اجرا کنیم و این بار متن را دریافت می کنیم
602
00:28:10,910 –> 00:28:14,330
این عنوان اکنون است اگر
603
00:28:14,330 –> 00:28:16,730
می خواهید متن را با استفاده از XPath به جای
604
00:28:16,730 –> 00:28:19,010
دسترسی به آن با استفاده از ویژگی text دریافت کنید
605
00:28:19,010 –> 00:28:21,920
. مربوط به L XML میتوانیم
606
00:28:21,920 –> 00:28:25,309
تابعی را در داخل متد XPath به نام text فراخوانی کنیم،
607
00:28:25,309 –> 00:28:29,780
بنابراین متن را با دو پرانتز اسلش کنید
608
00:28:29,780 –> 00:28:31,760
، البته با این کار دیگر
609
00:28:31,760 –> 00:28:34,760
به این ویژگی متن نیازی نداریم، پس
610
00:28:34,760 –> 00:28:39,380
بیایید آن را حذف کنیم، دوباره اجرا کنیم و میتوانیم
611
00:28:39,380 –> 00:28:43,340
همان چیزی را دریافت کنم که این است. عنوان را اکنون به عنوان
612
00:28:43,340 –> 00:28:45,440
یک چالش ادامه دهید و
613
00:28:45,440 –> 00:28:48,890
تگ پاراگراف را با استفاده از XPath انتخاب کنید و
614
00:28:48,890 –> 00:28:50,720
مطمئن شوید که متن را با استفاده از
615
00:28:50,720 –> 00:28:53,030
تابع متن در XPath به جای استفاده
616
00:28:53,030 –> 00:28:55,460
از ویژگی متنی که تقریباً ده
617
00:28:55,460 –> 00:28:58,809
ثانیه در اختیار
618
00:29:03,110 –> 00:29:05,170
دارید
619
00:29:06,770 –> 00:29:09,260
، دریافت می کنید، بنابراین سریع بپردازید درست است، بنابراین برای انتخاب تگ پاراگراف
620
00:29:09,260 –> 00:29:11,660
با استفاده از XPath، میتوانیم متد find را
621
00:29:11,660 –> 00:29:17,570
با ex bath و body /b با اسلش دوبل جایگزین
622
00:29:17,570 –> 00:29:22,000
623
00:29:22,000 –> 00:29:26,150
624
00:29:26,150 –> 00:29:29,450
کنیم.
625
00:29:29,450 –> 00:29:33,559
حالا آخرین اما مهم نیست،
626
00:29:33,559 –> 00:29:35,630
اجازه دهید این قسمت از
627
00:29:35,630 –> 00:29:38,720
کد خود را با استفاده از XPath بازسازی کنیم، بنابراین من می خواهم
628
00:29:38,720 –> 00:29:40,520
همه چیزهایی را که در داخل حلقه for است
629
00:29:40,520 –> 00:29:43,400
حذف کنم تا گیج نشویم و بیایید
630
00:29:43,400 –> 00:29:47,360
Find all را با XPath جایگزین کنیم و
631
00:29:47,360 –> 00:29:50,179
تمام متحدانی را که فقط به آن نیاز داریم به دست آوریم. برای تغییر این
632
00:29:50,179 –> 00:29:53,960
مسیر مطلق به اسلش دوبرابر و من
633
00:29:53,960 –> 00:29:57,309
به همین راحتی، اکنون در داخل حلقه for،
634
00:29:57,309 –> 00:30:03,440
بیایید هر نقطه را به رشته یک دروغ چاپ کنیم،
635
00:30:03,440 –> 00:30:07,880
بیایید کد را اجرا کنیم و این چیزی است که به
636
00:30:07,880 –> 00:30:12,700
دست می آوریم تا موارد این یکی را لیست کنیم و با عرض
637
00:30:12,700 –> 00:30:16,510
پوزش این یکی و این یکی
638
00:30:16,510 –> 00:30:19,640
اما توجه داشته باشید از آنجایی که ما از
639
00:30:19,640 –> 00:30:22,850
تابع متن استفاده نکردیم، اکنون نشانه گذاری کامل HTML
640
00:30:22,850 –> 00:30:25,220
آیتم های لیست را دریافت کردیم
641
00:30:25,220 –> 00:30:27,170
تا متنی را که در داخل آیتم های لیست قرار دارد دریافت
642
00:30:27,170 –> 00:30:29,870
کنیم، اجازه دهید یک متغیر در داخل
643
00:30:29,870 –> 00:30:30,380
حلقه for ایجاد کنیم،
644
00:30:30,380 –> 00:30:33,770
همه متن ها برابر با دو هستند. می توانیم
645
00:30:33,770 –> 00:30:35,929
متن ei را خروجی بگیریم سپس با استفاده از ویژگی text
646
00:30:35,929 –> 00:30:38,480
یا با اجرای عبارت XPath دیگر
647
00:30:38,480 –> 00:30:41,570
در برابر این عنصر شیء از نوع li که
648
00:30:41,570 –> 00:30:45,140
در هر تکرار برگردانده می شود، بنابراین متن
649
00:30:45,140 –> 00:30:50,000
برابر با دو است و i dot XPath متن بزرگ را دوبله می
650
00:30:50,000 –> 00:30:54,950
کند، حالا بیایید متن را چاپ کنیم و اجازه دهید
651
00:30:54,950 –> 00:30:58,070
کد را با کامل اجرا کنیم تا همانطور که
652
00:30:58,070 –> 00:31:00,770
انتظار می رود دریافت کردیم. دو لیست چون
653
00:31:00,770 –> 00:31:03,679
باید مواردی را فهرست کنیم که واضح است اما به
654
00:31:03,679 –> 00:31:06,110
طور غیرمنتظره متن تمام
655
00:31:06,110 –> 00:31:08,690
تگ هایی را که در کد HTML ما
656
00:31:08,690 –> 00:31:11,870
هستند دریافت کردیم، این عنوان از
657
00:31:11,870 –> 00:31:14,420
تگ عنوان است، hello world از
658
00:31:14,420 –> 00:31:17,419
تگ پاراگراف، ما همه را داریم.
659
00:31:17,419 –> 00:31:21,110
دوره اسکرپینگ وب از اولین متفقی
660
00:31:21,110 –> 00:31:23,900
که توسط آن ایجاد کرده ایم و سپس نام من
661
00:31:23,900 –> 00:31:26,360
از متحد دوم ایجاد شده است و این خیلی عجیب است
662
00:31:26,360 –> 00:31:28,549
زیرا اگرچه ما در حال اجرای
663
00:31:28,549 –> 00:31:32,540
این عبارت تخصصی در برابر شی عنصر Li هستیم که
664
00:31:32,540 –> 00:31:35,270
توسط این
665
00:31:35,270 –> 00:31:37,610
موارد لیست در هر تکرار بازگردانده شده است، همچنان متن را دریافت می کنیم.
666
00:31:37,610 –> 00:31:40,490
از تمام تگهای کد HTML ما، پس
667
00:31:40,490 –> 00:31:42,920
چگونه میتوانیم این مشکل را به خوبی برطرف کنیم، تنها کاری که باید
668
00:31:42,920 –> 00:31:45,470
انجام دهیم این است که یک نقطه در
669
00:31:45,470 –> 00:31:47,750
ابتدای عبارت XPath اضافه کنیم و این همان چیزی است
670
00:31:47,750 –> 00:31:52,190
که دوباره اجرا میشود و v Oila این
671
00:31:52,190 –> 00:31:54,830
بار فقط متن دو متحد
672
00:31:54,830 –> 00:31:58,490
را فقط به عنوان یک قانون کلی دریافت می کنیم هر زمان که
673
00:31:58,490 –> 00:32:00,679
XPath را در برابر یک شی عنصر
674
00:32:00,679 –> 00:32:03,740
مانند این مورد حذف می کنید و نه در برابر یک
675
00:32:03,740 –> 00:32:06,860
شی درخت عنصر، مطمئن شوید که نقطه را
676
00:32:06,860 –> 00:32:09,620
در ابتدا اضافه کنید، در حالی که اگر
677
00:32:09,620 –> 00:32:12,020
اجرا کنید XPath در برابر یک
678
00:32:12,020 –> 00:32:14,240
شیء ابتدایی مانند این مورد، لازم نیست نقطه
679
00:32:14,240 –> 00:32:17,360
را اضافه کنید، بنابراین برای مثال
680
00:32:17,360 –> 00:32:19,730
ما دو لیست درست داریم، اولی
681
00:32:19,730 –> 00:32:22,549
فقط شامل یک مورد با مقداری متن است
682
00:32:22,549 –> 00:32:25,820
و دومی شامل سه
683
00:32:25,820 –> 00:32:29,960
مورد است که با نام من ایجاد شده است. بک اسلش N و
684
00:32:29,960 –> 00:32:32,630
مقداری فضای سفید حالا کاری که من میخواهم انجام دهم این
685
00:32:32,630 –> 00:32:34,429
است که از شر این فضای سفید اضافی
686
00:32:34,429 –> 00:32:37,220
و n کاراکتر بک اسلش خلاص شوم و
687
00:32:37,220 –> 00:32:39,230
چون ما یک لیست داریم میتوانیم از
688
00:32:39,230 –> 00:32:43,360
روشی به نام نقشه استفاده کنیم، بنابراین بیایید نقشه را در اینجا فراخوانی کنیم و
689
00:32:43,360 –> 00:32:46,340
اکنون نقشه را به عنوان یک نشان میدهد. آرگومان اول
690
00:32:46,340 –> 00:32:48,440
تابعی است که روی هر
691
00:32:48,440 –> 00:32:50,870
آیتم در لیست نگاشت می شود، بنابراین ما از
692
00:32:50,870 –> 00:32:54,290
نوار نقطه ای STR بدون پرانتز استفاده می کنیم
693
00:32:54,290 –> 00:32:56,240
که تمام فضای سفید و n کاراکتر بک اسلش را حذف می کند و
694
00:32:56,240 –> 00:32:58,340
695
00:32:58,340 –> 00:33:00,500
دومین آرگومان مورد نیاز برای i است. terable
696
00:33:00,500 –> 00:33:04,429
که لیستی است که توسط Li dot XPath برگردانده شده است،
697
00:33:04,429 –> 00:33:08,090
بنابراین اجازه دهید این قسمت را برش دهیم و اجازه دهید
698
00:33:08,090 –> 00:33:10,429
آن را به عنوان آرگومان دوم در متد map قرار
699
00:33:10,429 –> 00:33:13,190
دهیم تا خروجی را ببینیم
700
00:33:13,190 –> 00:33:15,650
که این متغیر متنی را به یک لیست تبدیل می کنیم
701
00:33:15,650 –> 00:33:18,130
، بنابراین بیایید تابع لیست را
702
00:33:18,130 –> 00:33:21,620
زیبا صدا کنیم. این اجازه دهید فایل را اجرا کنیم
703
00:33:21,620 –> 00:33:26,059
و خروجی به نظر تمیزتر به نظر می رسد،
704
00:33:26,059 –> 00:33:29,360
ثانیاً من نمی خواهم
705
00:33:29,360 –> 00:33:31,400
لیستی را برگردانم به جای آن، می
706
00:33:31,400 –> 00:33:34,850
خواهم هر مورد را در لیست به عنوان یک رشته برگردانم
707
00:33:34,850 –> 00:33:36,470
تا بتوانیم از تابع دیگری
708
00:33:36,470 –> 00:33:38,840
به نام join استفاده کنیم، اما مشکل اینجاست. تابع مشترک
709
00:33:38,840 –> 00:33:41,300
باید در برابر یک رشته فراخوانی شود،
710
00:33:41,300 –> 00:33:44,510
بنابراین کاری که میتوانیم انجام دهیم این است که یک رشته خالی را
711
00:33:44,510 –> 00:33:47,710
در اینجا اضافه کنیم و سپس تابع مشترک را فراخوانی
712
00:33:47,710 –> 00:33:51,350
کنیم، بیایید cloves anti-seize را در اینجا اضافه کنیم، بنابراین
713
00:33:51,350 –> 00:33:53,840
اساساً هر مورد
714
00:33:53,840 –> 00:33:57,200
از لیست را گرفته و با این رشته خالی به آن ملحق
715
00:33:57,200 –> 00:33:59,450
میشود. حالا بیایید تابع لیست را حذف
716
00:33:59,450 –> 00:34:01,970
کنیم زیرا متد join
717
00:34:01,970 –> 00:34:05,660
رشتهای را برمیگرداند که به این صورت میافتد، بیایید
718
00:34:05,660 –> 00:34:08,060
دوباره فایل را حذف کنیم، بنابراین با یک
719
00:34:08,060 –> 00:34:11,719
خطا مواجه
720
00:34:11,719 –> 00:34:13,940
721
00:34:13,940 –> 00:34:17,090
شدیم. حالا یک پرانتز بخوانیم،
722
00:34:17,090 –> 00:34:20,510
بیایید دوباره اجرا کنیم،
723
00:34:20,510 –> 00:34:23,150
خروجی بسیار خواناتر است حالا در کنار
724
00:34:23,150 –> 00:34:25,520
روش XPath، ما همچنین
725
00:34:25,520 –> 00:34:27,980
انتخابگرهای CSS را برای انتخاب تگها از
726
00:34:27,980 –> 00:34:30,920
صفحات وب HTML داریم، بنابراین در ویدیوی بعدی
727
00:34:30,920 –> 00:34:32,540
به شما معرفی مختصری از CSS میدهم.
728
00:34:32,540 –> 00:34:34,639
انتخابگرها و البته
729
00:34:34,639 –> 00:34:36,800
من یک بخش اختصاصی را به انتخابگرهای CSS واقعی اضافه خواهم کرد،
730
00:34:36,800 –> 00:34:39,230
درست مانند XPath انتخاب
731
00:34:39,230 –> 00:34:41,360
بین انتخابگرهای XPath و CSS یک
732
00:34:41,360 –> 00:34:43,820
سوال اولویت است.
733
00:34:43,820 –> 00:34:46,250
734
00:34:46,250 –> 00:34:48,560
735
00:34:48,560 –> 00:34:50,929
انتخابگرهای CSS مورد نیاز است و به
736
00:34:50,929 –> 00:34:52,790
همین دلیل است که تصمیم گرفتم آن را اضافه
737
00:34:52,790 –> 00:34:59,650
کنم، در غیر این صورت به هیچ وجه همه را خوب نمیکنم،
738
00:34:59,650 –> 00:35:01,820
بنابراین این بار میتوانید در
739
00:35:01,820 –> 00:35:04,730
مورد XPath بیاموزید و یک چیزی که میخواهم
740
00:35:04,730 –> 00:35:06,530
قبل از شروع به شما بگویم این است که برای هر پروژهای
741
00:35:06,530 –> 00:35:09,020
که نمیتوانیم بعدا انجام دهیم. من از XPath
742
00:35:09,020 –> 00:35:11,600
بر روی انتخابگرهای CSS استفاده خواهم کرد، تنها دلیلی که به
743
00:35:11,600 –> 00:35:13,760
شما نشان دادم چگونه انتخابگرهای CSS را بنویسید،
744
00:35:13,760 –> 00:35:15,800
این است که وقتی میخواهم کاور اسپلش کنم، میتوانیم به آنها نیاز داشته باشیم
745
00:35:15,800 –> 00:35:17,900
و البته برای هر
746
00:35:17,900 –> 00:35:20,420
پروژه، یک مقاله اضافه میکنم. به اشتراک گذاری
747
00:35:20,420 –> 00:35:22,460
با نسخه CSS کدی که
748
00:35:22,460 –> 00:35:24,770
اکنون برای این ویدیو می نویسم، می توانیم از این
749
00:35:24,770 –> 00:35:27,200
وب سایت برای آزمایش هر عبارت XPath
750
00:35:27,200 –> 00:35:29,540
که می خواهیم بنویسیم استفاده کنم و بعداً وقتی
751
00:35:29,540 –> 00:35:31,160
با وب سایت های واقعی شروع می کنیم از
752
00:35:31,160 –> 00:35:33,890
Google Chrome استفاده می کنیم. ما باید
753
00:35:33,890 –> 00:35:36,260
انجام دهیم این است که این فایل HTML را دانلود کنیم،
754
00:35:36,260 –> 00:35:38,240
من آن را به عنوان منبع قابل دانلود به این سخنرانی اضافه می
755
00:35:38,240 –> 00:35:40,400
کنم، من فقط
756
00:35:40,400 –> 00:35:42,470
تغییرات کوچکی ایجاد کردم تا بتوانم به شما نشان دهم که XPath چه کاری
757
00:35:42,470 –> 00:35:44,990
می تواند انجام دهد پس از کپی کردن همه چیز
758
00:35:44,990 –> 00:35:47,210
از آن فایل HTML، مرورگر مورد علاقه خود را باز کنید و
759
00:35:47,210 –> 00:35:48,680
مرورگر مورد علاقه خود را
760
00:35:48,680 –> 00:35:51,170
به آن پیمایش کنید. این وبسایت و سپس
761
00:35:51,170 –> 00:35:54,200
همه چیز را در این قسمت متن جایگذاری کنید، اکنون در
762
00:35:54,200 –> 00:35:55,819
بخش قبل یاد گرفتیم که
763
00:35:55,819 –> 00:35:57,680
میتوانیم یک عنصر را از صفحه وب HTML
764
00:35:57,680 –> 00:36:00,319
با استفاده از اسلش دوبل و سپس
765
00:36:00,319 –> 00:36:03,170
نام عنصر هدف
766
00:36:03,170 –> 00:36:08,180
انتخاب کنیم، بنابراین فرض کنید این h1 را میخواهیم، بنابراین آن را انتخاب میکنیم. از اسلش دوبل h1 استفاده کنید،
767
00:36:08,180 –> 00:36:13,010
بنابراین این عبارت XPath
768
00:36:13,010 –> 00:36:15,380
تمام عناصر h1 را در
769
00:36:15,380 –> 00:36:17,240
نشانه گذاری HTML ما بدون در نظر
770
00:36:17,240 –> 00:36:19,790
گرفتن موقعیت عنصر جستجو می کند، خواه داخل
771
00:36:19,790 –> 00:36:22,940
عنصر دیگری باشد یا خارج از آن، اما همانطور
772
00:36:22,940 –> 00:36:24,770
که در ابتدا به شما گفتم. در ویدیوی قبلی ما
773
00:36:24,770 –> 00:36:27,380
همیشه تمایل داریم در مورد انتخاب عنصر خاص باشیم،
774
00:36:27,380 –> 00:36:30,349
بنابراین فرض کنید اگر میخواهید عنصری را بر اساس نام کلاس آن انتخاب کنید، فقط
775
00:36:30,349 –> 00:36:33,740
میخواهیم نخودهایی را که در داخل این عنصر div قرار دارند
776
00:36:33,740 –> 00:36:36,050
با یک ویژگی کلاس به عنوان
777
00:36:36,050 –> 00:36:39,109
مقدمه در XPath دریافت کنیم.
778
00:36:39,109 –> 00:36:42,380
ما
779
00:36:42,380 –> 00:36:45,800
طبق معمول با اسلش دوبل شروع می کنیم،
780
00:36:45,800 –> 00:36:48,079
نام عنصر را که در مورد ما Dave است
781
00:36:48,079 –> 00:36:50,240
و برای مشخص کردن ویژگی هدف،
782
00:36:50,240 –> 00:36:53,030
خواه شناسه کلاس یا هر چیز دیگری باشد،
783
00:36:53,030 –> 00:36:57,200
از دو براکت مربع در کلاس علامت استفاده می کنیم،
784
00:36:57,200 –> 00:37:03,440
بنابراین مانند این،
785
00:37:03,440 –> 00:37:05,150
فقط روز را با یک
786
00:37:05,150 –> 00:37:08,089
صفت کلاس روی مقدمه تنظیم شده است و اگر
787
00:37:08,089 –> 00:37:09,920
میخواهید عناصر P را که داخل
788
00:37:09,920 –> 00:37:15,170
آن div هستند، اسلش B اضافه میکنیم، بنابراین با نگاه
789
00:37:15,170 –> 00:37:17,299
کردن به نحو، میدانم که CSS بسیار تمیزتر
790
00:37:17,299 –> 00:37:20,119
از متخصص به نظر میرسد، اما XPath
791
00:37:20,119 –> 00:37:22,730
از نظر عملکرد غنیتر است، بنابراین علاوه بر
792
00:37:22,730 –> 00:37:24,500
انتخاب همه برنامهنویسها با کلاس
793
00:37:24,500 –> 00:37:28,150
intro که میخواهیم این div را
794
00:37:28,150 –> 00:37:31,430
با یک ویژگی کلاس که روی outro تنظیم شده است را انتخاب کنیم،
795
00:37:31,430 –> 00:37:33,920
برای این منظور کاری که میتوانیم انجام دهیم این است که
796
00:37:33,920 –> 00:37:37,250
از عملگر منطقی یا در داخل
797
00:37:37,250 –> 00:37:41,450
براکتهای مربع استفاده کنیم، بنابراین همه علامت @ هستند. plus
798
00:37:41,450 –> 00:37:46,160
برابر با همه true است، بنابراین این
799
00:37:46,160 –> 00:37:48,200
عبارت XPath به این صورت ارزیابی می شود.
800
00:37:48,200 –> 00:37:51,710
801
00:37:51,710 –> 00:37:54,349
802
00:37:54,349 –> 00:37:57,500
803
00:37:57,500 –> 00:38:00,110
804
00:38:00,110 –> 00:38:02,720
805
00:38:02,720 –> 00:38:05,300
ممنوع کردن با شناسهها در
806
00:38:05,300 –> 00:38:07,850
مکان، زیرا اگر به خاطر داشته باشید در انتخابگرهای CSS،
807
00:38:07,850 –> 00:38:10,340
باید به صراحت این فاصله را