در این مطلب، ویدئو پروژه عملی پایتون: نمونه اولیه Web Scraper (Semi-Livecoding) با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:07,349 –> 00:00:10,000
بسیار خوب، بنابراین اولین غریزه شما
2
00:00:10,000 –> 00:00:11,650
احتمالاً این است که متنی را باز کنید و
3
00:00:11,650 –> 00:00:14,740
شروع به نوشتن کد کنید و این
4
00:00:14,740 –> 00:00:17,350
احتمالاً اشتباه است یکی از
5
00:00:17,350 –> 00:00:18,760
کارهایی که می خواهید هنگام شروع یک پروژه جدید انجام دهید
6
00:00:18,760 –> 00:00:20,260
این است که بفهمید به
7
00:00:20,260 –> 00:00:22,840
طور خاص برای نمونه اولیه چه می خواهید.
8
00:00:22,840 –> 00:00:24,700
نمونه اولیه اولین
9
00:00:24,700 –> 00:00:27,310
مرحله توسعه خواهد بود، این یک نوع
10
00:00:27,310 –> 00:00:29,830
سریع اثبات مفهوم است، فقط برای اینکه دوست داشته باشید، به شما اجازه می دهد
11
00:00:29,830 –> 00:00:31,720
تا بفهمید که این
12
00:00:31,720 –> 00:00:33,670
چیز واقعاً چه شکلی می تواند در هنگام
13
00:00:33,670 –> 00:00:36,489
ساخت آن باشد، بنابراین نمونه اولیه باید به نوعی آن را
14
00:00:36,489 –> 00:00:38,860
انجام دهد. شاید
15
00:00:38,860 –> 00:00:42,879
وظیفه اصلی اصلی برنامه شما کاری که بسیاری از
16
00:00:42,879 –> 00:00:44,260
مردم انجام می دهند این است که یک فایل متنی را باز کرده
17
00:00:44,260 –> 00:00:46,270
و شروع به نوشتن کدی می کنند که دقیقاً شبیه
18
00:00:46,270 –> 00:00:48,130
کاری است که آنها می دانند چگونه انجام
19
00:00:48,130 –> 00:00:49,450
دهند و فکر می کنند بخشی از این
20
00:00:49,450 –> 00:00:51,340
پروژه خواهد بود که بسیار عالی است. راهی برای جذب
21
00:00:51,340 –> 00:00:52,989
خود به بسیاری از
22
00:00:52,989 –> 00:00:54,760
خطوط کد که در واقع به شما کمک نمی کنند
23
00:00:54,760 –> 00:00:56,469
مشکل را حل کنید و فقط
24
00:00:56,469 –> 00:00:58,300
مسائل را گیج کننده تر و پیچیده تر می کند تا
25
00:00:58,300 –> 00:01:00,040
بعداً با آنها مقابله کنید، بنابراین اولین کاری که می
26
00:01:00,040 –> 00:01:02,710
خواهید انجام دهید این است که واقعاً
27
00:01:02,710 –> 00:01:04,690
به مشکلی که میخواهید حل کنید در
28
00:01:04,690 –> 00:01:05,800
مورد ما نگاه کنید، این نسبتاً ساده و
29
00:01:05,800 –> 00:01:08,229
سرراست است، این است که ما یک
30
00:01:08,229 –> 00:01:09,820
وبسایت داریم و میخواهیم آن وبسایت را خراش
31
00:01:09,820 –> 00:01:11,920
دهیم، به این معنی که میخواهیم برنامه
32
00:01:11,920 –> 00:01:14,440
ما مانند یک مرورگر، درخواستهای HTTP را برای آن ارسال
33
00:01:14,440 –> 00:01:17,050
کند. و سپس میخواهیم
34
00:01:17,050 –> 00:01:19,479
از پاسخهایی که این
35
00:01:19,479 –> 00:01:22,539
وبسایت برای ما ارسال میکند، مقداری داده بگیریم، بنابراین در حال حاضر
36
00:01:22,539 –> 00:01:24,459
به
37
00:01:24,459 –> 00:01:27,459
مجموعه کتابهای محاسبات ابری Humble Bundle نگاه میکنیم، این همان چیزی است که
38
00:01:27,459 –> 00:01:30,789
میخواهیم خراش دهیم، بنابراین یک URL داریم که
39
00:01:30,789 –> 00:01:33,729
ما را به آنچه میخواهیم میرساند. برای خراش دادن، در
40
00:01:33,729 –> 00:01:35,679
نهایت میخواهیم همه بستهها را خراش دهیم،
41
00:01:35,679 –> 00:01:37,090
اما این به نوعی
42
00:01:37,090 –> 00:01:39,789
بخشی جداگانه از برنامه ما خواهد بود در حال حاضر،
43
00:01:39,789 –> 00:01:41,349
ما فقط میخواهیم یک
44
00:01:41,349 –> 00:01:44,890
اسکریپت اصلی اثبات مفهوم را انجام دهیم که درخواستی را از
45
00:01:44,890 –> 00:01:48,459
سایت میگیرد و آن را تجزیه میکند. پاسخ آنچه
46
00:01:48,459 –> 00:01:50,649
من در اینجا برای نمونه اولیه فکر میکنم این است
47
00:01:50,649 –> 00:01:53,380
که اساساً باید اینها
48
00:01:53,380 –> 00:01:55,479
را به طبقات جدا کند، بنابراین مانند ردیف یک
49
00:01:55,479 –> 00:01:59,380
دلاری این کتابها، ردیف 8 دلاری است،
50
00:01:59,380 –> 00:02:01,569
بنابراین آن را به لایههایی تقسیم میکنیم و
51
00:02:01,569 –> 00:02:03,369
سپس همه موارد را فهرست میکنیم. محصولاتی که هر
52
00:02:03,369 –> 00:02:05,920
طبقه دارد بنابراین من می روم به دایرکتوری کد من بروید
53
00:02:05,920 –> 00:02:08,979
و من یک دایرکتوری جدید را
54
00:02:08,979 –> 00:02:10,630
فقط برای این پروژه ایجاد می کنم و
55
00:02:10,630 –> 00:02:15,970
آن را bundle scraper می نامیم و بنابراین من
56
00:02:15,970 –> 00:02:18,670
این دایرکتوری را در ویرایشگر متن خود باز کرده ام تا زمانی
57
00:02:18,670 –> 00:02:20,590
که شما از چه چیزی استفاده می کنید مهم نیست
58
00:02:20,590 –> 00:02:21,819
از آنجایی که شما با آن راحت هستید، من
59
00:02:21,819 –> 00:02:24,340
در اینجا از متن عالی استفاده می کنم، بنابراین اولین
60
00:02:24,340 –> 00:02:25,510
کاری که می خواهم
61
00:02:25,510 –> 00:02:29,200
مانند هر اسکریپت پایتون انجام دهم، عبارت user bin
62
00:02:29,200 –> 00:02:31,360
و Python است و این بدان معنی است که اگر این
63
00:02:31,360 –> 00:02:34,629
اسکریپت به عنوان اجرایی لینوکس علامت گذاری شود،
64
00:02:34,629 –> 00:02:37,720
می داند که از هر
65
00:02:37,720 –> 00:02:40,959
محیطی که پایتون است برای اجرای آن استفاده کنید، من
66
00:02:40,959 –> 00:02:41,980
فقط میخواهم آن را به پایتون 3 تغییر دهم،
67
00:02:41,980 –> 00:02:43,870
اما در حال حاضر فقط نام آن را
68
00:02:43,870 –> 00:02:48,069
bundle scraper dot PI خوب میگذاریم تا
69
00:02:48,069 –> 00:02:51,280
در همان ابتدای یک اسکریپت
70
00:02:51,280 –> 00:02:54,879
به خوبی دست پیدا کنیم. شما مبتدی هستید مطمئن شوید که
71
00:02:54,879 –> 00:02:56,260
همه چیز کار می کند، می توانید یک
72
00:02:56,260 –> 00:03:00,640
سلام کوچک بنویسید، صرفه جویی در این
73
00:03:00,640 –> 00:03:05,549
74
00:03:05,549 –> 00:03:08,110
75
00:03:08,110 –> 00:03:09,760
76
00:03:09,760 –> 00:03:11,019
مورد سلام دنیا، بنابراین ما
77
00:03:11,019 –> 00:03:12,730
اساساً یک برنامه
78
00:03:12,730 –> 00:03:15,459
سرتاسری داریم که محیط ما را کار می کند asically کار می کند و اکنون
79
00:03:15,459 –> 00:03:17,680
می توانیم توسعه را شروع کنیم اولین
80
00:03:17,680 –> 00:03:21,190
کاری که دوست دارم انجام دهم این است که یک پایان مجازی راه اندازی
81
00:03:21,190 –> 00:03:22,930
کنم. من یک ویدیوی کامل در این مورد ساخته ام بنابراین
82
00:03:22,930 –> 00:03:24,670
نمی خواهم آن را در اینجا با جزئیات پوشش
83
00:03:24,670 –> 00:03:27,130
دهم اما اساساً دقیقاً به شما نشان خواهم داد که
84
00:03:27,130 –> 00:03:29,680
چه چیزی من آن را تنظیم میکنم، بنابراین ابتدا
85
00:03:29,680 –> 00:03:31,720
یک فایل جدید ایجاد میکنم و
86
00:03:31,720 –> 00:03:34,930
آن را الزامات dot txt مینامم و اینجاست
87
00:03:34,930 –> 00:03:37,359
که همه بستههای Python را
88
00:03:37,359 –> 00:03:39,220
که به همه کتابخانهها
89
00:03:39,220 –> 00:03:41,319
یا ماژولهایی که نیاز داریم فهرست میکنیم. مثل
90
00:03:41,319 –> 00:03:45,220
نصب فقط برای این پروژه خواهد بود، کاری که
91
00:03:45,220 –> 00:03:48,670
من اکنون انجام می دهم این است که به پوسته خود برگردم
92
00:03:48,670 –> 00:03:54,310
و یک محیط مجازی برای
93
00:03:54,310 –> 00:03:57,220
این پروژه ایجاد کنم، بنابراین می گوییم پایان مجازی،
94
00:03:57,220 –> 00:04:00,780
شما باید بسته پایان مجازی Python را نصب کنید.
95
00:04:00,780 –> 00:04:04,900
برای این، اما شما
96
00:04:04,900 –> 00:04:08,019
می گویید پایان مجازی پایتون قرار است
97
00:04:08,019 –> 00:04:12,730
پایتون 3 باشد و سپس ما می گوییم مرغی و
98
00:04:12,730 –> 00:04:14,019
این یک محیط مجازی جدید ایجاد می کند
99
00:04:14,019 –> 00:04:15,819
که فقط یک دایرکتوری است
100
00:04:15,819 –> 00:04:17,910
که پر از همه باینری ها و
101
00:04:17,910 –> 00:04:22,000
چیزهایی است که ما نیاز داریم.
102
00:04:22,000 –> 00:04:24,010
بدون به هم ریختن سیستم ما توسعه دهید و
103
00:04:24,010 –> 00:04:25,570
همه چیز را همه وابستگی های ما حفظ کنید l
104
00:04:25,570 –> 00:04:27,070
از مطالب ما موجود در این دایرکتوری
105
00:04:27,070 –> 00:04:28,750
دوباره برای کسب اطلاعات بیشتر، فقط ویدیوی پایان مجازی را بررسی کنید،
106
00:04:28,750 –> 00:04:31,570
اما اساساً میتوانیم آن را
107
00:04:31,570 –> 00:04:33,280
با گفتن منبع
108
00:04:33,280 –> 00:04:37,850
nope viens activate فعال کنیم
109
00:04:37,850 –> 00:04:39,560
و خواهید دید که نوع فوری ما
110
00:04:39,560 –> 00:04:41,030
تغییر میکند و ما این چیز کوچک Vienna را
111
00:04:41,030 –> 00:04:42,650
داریم. در اینجا که فقط به این معنی است که ما در
112
00:04:42,650 –> 00:04:44,660
محیط مجازی VN هستیم، شما می توانید نام
113
00:04:44,660 –> 00:04:46,100
آن را هر چه می خواهید بگذارید، بنابراین مانند اینجا
114
00:04:46,100 –> 00:04:47,600
می توانید فقط بگویید که نام پروژه خود را می دانید
115
00:04:47,600 –> 00:04:49,220
یا چیزی برای خارج شدن از این،
116
00:04:49,220 –> 00:04:51,260
می توانید پوسته را ببندید یا فکر می کنم
117
00:04:51,260 –> 00:04:55,400
نوع بله را غیرفعال کنید، بنابراین اکنون ما دوباره
118
00:04:55,400 –> 00:04:58,550
بیرون آمده ایم و کاری که انجام می دهد این است که دوباره این
119
00:04:58,550 –> 00:04:59,660
در ویدیوی دیگر است، اما من فقط می خواهم
120
00:04:59,660 –> 00:05:01,970
خیلی سریع به شما نشان دهم وقتی این را
121
00:05:01,970 –> 00:05:04,970
فعال کردیم، می توانید ببینید
122
00:05:04,970 –> 00:05:06,590
که به جای استفاده از
123
00:05:06,590 –> 00:05:08,840
وابستگی های سیستم، اکنون ما از
124
00:05:08,840 –> 00:05:11,600
وابستگیهایی که به صورت محلی در این ماشین مجازی داریم استفاده میکنیم،
125
00:05:11,600 –> 00:05:14,540
بنابراین مانند یک باینری پایتون جدید
126
00:05:14,540 –> 00:05:17,360
در اینجا نصب شده است، به همین ترتیب، همه بستههای ما
127
00:05:17,360 –> 00:05:19,640
که نصب میکنیم
128
00:05:19,640 –> 00:05:21,410
فقط در این محیط مجازی قابل دسترسی خواهند بود
129
00:05:21,410 –> 00:05:23,240
تا به هم نریزند.
130
00:05:23,240 –> 00:05:24,790
سیستم ما و اینکه ما
131
00:05:24,790 –> 00:05:27,110
تضادهای وابستگی مانند تضادهای نسخه
132
00:05:27,110 –> 00:05:28,550
بین پروژه های مختلف
133
00:05:28,550 –> 00:05:30,830
نداریم که در حال توسعه آنها هستیم بسیار خوب این همه چیزی است که
134
00:05:30,830 –> 00:05:32,420
در مورد ماشین های مجازی می گویم
135
00:05:32,420 –> 00:05:34,040
برای جزئیات بیشتر ویدیوی دیگر را بررسی کنید، اما این تنها چیزی است
136
00:05:34,040 –> 00:05:37,160
که باید برای آن بدانید. در حال حاضر بسیار خوب،
137
00:05:37,160 –> 00:05:39,470
ما یک پایان مجازی داریم، اکنون این چیزی است که ما
138
00:05:39,470 –> 00:05:40,550
واقعاً باید انجام دهیم، باید
139
00:05:40,550 –> 00:05:43,670
این مورد را خراش دهیم، بنابراین این اولین خط
140
00:05:43,670 –> 00:05:47,000
کد ما است، شما آماده هستید، این URL ما است، این همان
141
00:05:47,000 –> 00:05:49,490
چیزی است که ما قصد داریم آن را خراش دهیم، بنابراین به
142
00:05:49,490 –> 00:05:50,690
معنای واقعی کلمه این کار را انجام خواهیم داد. این در سادهترین
143
00:05:50,690 –> 00:05:52,610
قالب ممکن است و ما
144
00:05:52,610 –> 00:05:55,070
این رشته را در اینجا وارد میکنیم که فقط آدرس اینترنتی است
145
00:05:55,070 –> 00:05:57,320
که میخواهیم عالی باشد، سپس باید
146
00:05:57,320 –> 00:06:00,920
آن را خراش دهیم، بنابراین در واقع باید یک
147
00:06:00,920 –> 00:06:06,230
درخواست HTTP داشته باشیم و سپس نتیجه آن را بررسی
148
00:06:06,230 –> 00:06:08,300
کنیم تا مثل همیشه من می خواهم
149
00:06:08,300 –> 00:06:12,080
پوسته ای را در کنارم باز کنم و وارد رپل شوم
150
00:06:12,080 –> 00:06:14,750
تا بتوانم
151
00:06:14,750 –> 00:06:17,180
با کاری که انجام می دهم آزمایشی انجام دهم و در اینجا باید
152
00:06:17,180 –> 00:06:20,150
به داخل کد بسته نرم افزاری بروم و سپس
153
00:06:20,150 –> 00:06:21,860
باید آن کار منبع را انجام دهم.
154
00:06:21,860 –> 00:06:23,270
بنابراین من از همان نسخه پایتون استفاده
155
00:06:23,270 –> 00:06:26,110
می کنم اسکریپت قرار است استفاده شود و
156
00:06:26,110 –> 00:06:29,690
اینجا هستم، بنابراین اولین کاری که باید
157
00:06:29,690 –> 00:06:33,530
انجام دهم این است که کتابخانه ای است که برای
158
00:06:33,530 –> 00:06:36,730
این کار از آن استفاده می کنیم درخواست نامیده می شود،
159
00:06:36,730 –> 00:06:39,080
بنابراین اگر درخواست های پایتون را جستجو
160
00:06:39,080 –> 00:06:41,390
کنید به
161
00:06:41,390 –> 00:06:45,350
اسناد پایتون منتقل می شوید. کتابخانه HTTP که
162
00:06:45,350 –> 00:06:47,270
به نوعی یک
163
00:06:47,270 –> 00:06:49,700
رابط یا انتزاعی بسیار زیبا و ساده برای
164
00:06:49,700 –> 00:06:52,550
برخورد با HTTP به شما می دهد، بنابراین این یکی از
165
00:06:52,550 –> 00:06:53,960
موادی است که ما از آن استفاده می کنیم
166
00:06:53,960 –> 00:06:56,810
تا مجبور نباشیم کارهای سطح پایین تر یا
167
00:06:56,810 –> 00:06:59,320
چیزهای واقعا پیچیده تر انجام دهیم. خودمان
168
00:06:59,320 –> 00:07:01,550
و شما می توانید ببینید که کاری که ما واقعاً می خواهیم
169
00:07:01,550 –> 00:07:03,290
انجام دهیم این است که یک درخواست دریافت کنیم، اجازه دهید
170
00:07:03,290 –> 00:07:07,070
درخواست HTTP که منبعی را در
171
00:07:07,070 –> 00:07:09,440
این مورد این صفحه وب می خواهد، بنابراین شما می توانید
172
00:07:09,440 –> 00:07:11,420
به معنای واقعی کلمه
173
00:07:11,420 –> 00:07:13,730
آن را بگیرید. فقط
174
00:07:13,730 –> 00:07:16,130
اگر به آن نیاز دارید و می بینید که ما می
175
00:07:16,130 –> 00:07:20,540
توانیم به محض اینکه این
176
00:07:20,540 –> 00:07:22,460
درخواست انجام شد بررسی کنیم، پس چرا
177
00:07:22,460 –> 00:07:26,420
با آن بازی نکنیم، بنابراین به جای اینکه
178
00:07:26,420 –> 00:07:30,920
به این نیاز نداشته باشیم و فقط می خواهیم آن را پاس کنیم
179
00:07:30,920 –> 00:07:34,670
URL در اینجا درست است، بنابراین این رشته ما است و
180
00:07:34,670 –> 00:07:38,840
چرا این کار را در r انجام نمی دهیم epple بنابراین
181
00:07:38,840 –> 00:07:42,500
فیس بوک این موارد را وارد کنید و اینجاست که
182
00:07:42,500 –> 00:07:44,180
اولین درخواست خطای ما تعریف نشده است، بنابراین
183
00:07:44,180 –> 00:07:46,130
اگر
184
00:07:46,130 –> 00:07:48,320
هنوز درخواست ها را نصب نکرده اید باید درخواست ها را وارد کنیم در اینجا
185
00:07:48,320 –> 00:07:51,320
نحوه انجام این کار به این صورت است که می توانید فقط
186
00:07:51,320 –> 00:07:53,870
درخواست های نصب hip را بگویید اما
187
00:07:53,870 –> 00:07:55,520
واقعاً این را دنبال نمی کنید از هر جهت،
188
00:07:55,520 –> 00:07:57,590
مانند بازگشت به حالتی که میتوانید
189
00:07:57,590 –> 00:07:59,210
این برنامه را اجرا کنید، کمی
190
00:07:59,210 –> 00:08:01,670
عجیب است، بنابراین در اینجا فقط
191
00:08:01,670 –> 00:08:04,460
میخواهید درخواستهایی را بگویید که واقعاً برایتان مهم نیست که کدام
192
00:08:04,460 –> 00:08:06,200
نسخه را داریم، میتوانید
193
00:08:06,200 –> 00:08:10,310
آن را در متن الزامات نیز مشخص کنید. حالا کاری که
194
00:08:10,310 –> 00:08:11,800
میتوانیم انجام دهیم این است که ما این
195
00:08:11,800 –> 00:08:14,180
فایل نیازمندیها را داریم که فقط میگوید
196
00:08:14,180 –> 00:08:15,890
درخواستها، کتابخانه مورد نظر ما است،
197
00:08:15,890 –> 00:08:20,360
میتوانیم بگوییم پیکاپ نیازمندیهای ما را نصب کنید
198
00:08:20,360 –> 00:08:22,190
dot txt و سپس pip بیرون میرود
199
00:08:22,190 –> 00:08:25,310
هر بسته را در آنجا میگیرد و آن را نصب میکند و
200
00:08:25,310 –> 00:08:28,310
هر چیزی که نیاز دارد آن را بسازد. برای انجام برخی از
201
00:08:28,310 –> 00:08:30,470
بسته ها نیاز است که شما مانند
202
00:08:30,470 –> 00:08:32,750
build های ضروری را نصب کرده باشید که دقیقاً
203
00:08:32,750 –> 00:08:35,630
مانند کتابخانه های هدر کامپایلر C است و
204
00:08:35,630 –> 00:08:38,150
مانند موارد مختلف دیگر اگر
205
00:08:38,150 –> 00:08:39,830
با خطا مواجه شدید معمولاً یک گوگل سریع
206
00:08:39,830 –> 00:08:41,360
به شما می گوید. آنچه را که باید
207
00:08:41,360 –> 00:08:43,570
نصب کنید تا بتوانید آن چیزها را درست بسازید، انجام دهید،
208
00:08:43,570 –> 00:08:47,690
بنابراین اکنون میتوانیم به پایتون برگردیم و
209
00:08:47,690 –> 00:08:50,690
اکنون میتوانیم
210
00:08:50,690 –> 00:08:53,100
درخواستها را به درستی وارد کنیم، بنابراین این کتابخانهای است که ما
211
00:08:53,100 –> 00:08:56,070
به آن نیاز داریم و ما این کار را در اینجا در دو
212
00:08:56,070 –> 00:09:00,090
کوئست مهم انجام خواهیم داد و اکنون ما می توانید
213
00:09:00,090 –> 00:09:03,810
این موارد را دوباره در اینجا بچسبانید اکنون
214
00:09:03,810 –> 00:09:04,800
خوب است، آیا می بینید که
215
00:09:04,800 –> 00:09:06,330
قبل از بازگشت مسدود شده است و این
216
00:09:06,330 –> 00:09:07,680
به این دلیل است که در واقع خارج می شود
217
00:09:07,680 –> 00:09:11,490
و یک درخواست HTTP ایجاد می کند، بنابراین اگر بگوییم R
218
00:09:11,490 –> 00:09:13,320
می توانیم ببینیم که این نوعی
219
00:09:13,320 –> 00:09:16,290
نمایش رشته است این شی که
220
00:09:16,290 –> 00:09:17,880
به ما بازگردانده شده است، یک
221
00:09:17,880 –> 00:09:20,670
شی پاسخ است اما در واقع پر از
222
00:09:20,670 –> 00:09:23,400
اطلاعات است، زمانی که راه ارزان و آسان برای
223
00:09:23,400 –> 00:09:26,360
بازرسی یک شی، انجام این روش جادویی
224
00:09:26,360 –> 00:09:28,470
زیرخط زیرخط زیرخط
225
00:09:28,470 –> 00:09:30,270
زیرخط است و به نوعی
226
00:09:30,270 –> 00:09:31,950
آن چیز را به یک فرهنگ لغت تبدیل می کند. که
227
00:09:31,950 –> 00:09:33,810
در این مورد چندان مفید
228
00:09:33,810 –> 00:09:35,400
نیست زیرا میتوانید ببینید که این
229
00:09:35,400 –> 00:09:39,600
HTML و جاوا اسکریپت است که به نظر میرسد،
230
00:09:39,600 –> 00:09:40,740
بنابراین مانند همه چیزهایی است که این شی در خود
231
00:09:40,740 –> 00:09:42,750
دارد و بخشی از آن نشانهگذاری است
232
00:09:42,750 –> 00:09:45,440
و شروع آن کجاست. این شی
233
00:09:45,440 –> 00:09:47,610
خوب است، بنابراین می توانید ببینید که
234
00:09:47,610 –> 00:09:50,040
حاوی اطلاعات دیگری نیز می باشد، بنابراین این یک
235
00:09:50,040 –> 00:09:52,050
فرهنگ لغت پایتون است، اکنون می توانید ببینید که
236
00:09:52,050 –> 00:09:55,230
درخواست چقدر طول کشیده است که محتوا
237
00:09:55,230 –> 00:09:56,760
تمام این موارد را مصرف کرده است، من نمی دانم نیمی
238
00:09:56,760 –> 00:09:58,410
از این به چه معناست، اما می توانید ببینید که این
239
00:09:58,410 –> 00:10:01,230
برخی موارد بسیار شبیه به HTTP که
240
00:10:01,230 –> 00:10:03,390
اگر میخواهید کوکی جعل بینسایتی را بخواهید میتوانید از این شیء بخوانید،
241
00:10:03,390 –> 00:10:05,460
242
00:10:05,460 –> 00:10:07,710
اما چیزی که ما واقعاً به آن اهمیت میدهیم
243
00:10:07,710 –> 00:10:09,900
وضعیتی است که به طور
244
00:10:09,900 –> 00:10:12,960
مفید در اینجا چاپ میشود و نشانهگذاری واقعی است،
245
00:10:12,960 –> 00:10:17,280
بنابراین اگر ما در مورد خود باقی بمانیم. کد وضعیتی
246
00:10:17,280 –> 00:10:21,990
که عدد صحیح 200 را به ما می دهد اکنون چگونه می توانم این کار
247
00:10:21,990 –> 00:10:23,250
را به خوبی انجام دهم به این دلیل است که من
248
00:10:23,250 –> 00:10:25,230
اسناد را خواندم بنابراین می توانید ببینید که
249
00:10:25,230 –> 00:10:28,110
کد وضعیت ما چیزی است که می توانید از
250
00:10:28,110 –> 00:10:29,850
این شی بپرسید به همین دلیل خواندن
251
00:10:29,850 –> 00:10:31,650
اسناد بسیار مهم است.
252
00:10:31,650 –> 00:10:33,450
وقت خود را هدر ندهید درست مثل نخواندن Doc
253
00:10:33,450 –> 00:10:34,920
و سپس فقط جستجو کردن برای هر
254
00:10:34,920 –> 00:10:36,120
کاری که می خواهید انجام دهید و به دنبال
255
00:10:36,120 –> 00:10:38,130
Stack Overflow هستید، چند دقیقه را صرف
256
00:10:38,130 –> 00:10:39,630
خواندن اسنادی کنید که من با آنها کار کرده ام،
257
00:10:39,630 –> 00:10:42,300
درخواست های زیادی را به دنبال دارد، بنابراین این یک
258
00:10:42,300 –> 00:10:43,830
جور است. اصول اولیه در حال حاضر طبیعت دومی هستند،
259
00:10:43,830 –> 00:10:45,630
اما اگر برای اولین بار این کار را انجام میدهید، این
260
00:10:45,630 –> 00:10:47,400
را از
261
00:10:47,400 –> 00:10:49,440
طریق QuickStart بخوانید،
262
00:10:49,440 –> 00:10:51,810
به برخی از ویژگیهایی که ارائه
263
00:10:51,810 –> 00:10:54,000
میدهد نگاهی بیندازید تا در مورد نحوه استفاده از آن ایده بگیرید.
264
00:10:54,000 –> 00:10:56,970
کتابخانه خوب است و
265
00:10:56,970 –> 00:10:58,980
به من گوش نمی دهی، اما بعد از اینکه
266
00:10:58,980 –> 00:11:00,210
زمان زیادی را تلف کردی به من گوش خواهی داد و
267
00:11:00,210 –> 00:11:02,070
می گویید دیو درست می گفت من اشتباه
268
00:11:02,070 –> 00:11:02,920
می کردم و خیلی
269
00:11:02,920 –> 00:11:04,209
متاسفم که می خواهید نظری را زیر من بگذارید
270
00:11:04,209 –> 00:11:06,730
ده ها یا صدها ساعت را هدر
271
00:11:06,730 –> 00:11:08,019
دادم و حالا بالاخره
272
00:11:08,019 –> 00:11:10,389
یاد گرفتم که ابتدا اسناد را بخوانم تا
273
00:11:10,389 –> 00:11:11,800
274
00:11:11,800 –> 00:11:13,029
وقتی سؤالاتی را می پرسم که
275
00:11:13,029 –> 00:11:14,709
در صفحه دوم مستندات به آنها پاسخ داده می شود، برای همه در اینترنت مانند یک احمق بزرگ به نظر نرسم.
276
00:11:14,709 –> 00:11:18,160
کسی که اینجا
277
00:11:18,160 –> 00:11:19,389
برای لحظه ای احساساتی شد متاسفم حدس می زنم
278
00:11:19,389 –> 00:11:21,160
چیزی در مورد هدر دادن
279
00:11:21,160 –> 00:11:23,139
صدها ساعت از وقتم باعث شد
280
00:11:23,139 –> 00:11:25,480
وقتی در مورد آن صحبت می کنم به اشتباه من را مالش دهد، بنابراین
281
00:11:25,480 –> 00:11:28,019
ما واقعاً به این چیزها اهمیت
282
00:11:28,019 –> 00:11:33,959
نمی دهیم، اما چیزی که به آن اهمیت می دهیم این است نشانه گذاری واقعی،
283
00:11:33,959 –> 00:11:39,220
بنابراین بیایید متن خود را امتحان کنیم تا ببینیم
284
00:11:39,220 –> 00:11:42,029
آیا w است کلاهی که میخواهیم، بنابراین متن خود را میگوییم و ق
285
00:11:42,029 –> 00:11:45,490
عاً شبیه چی
286
00:11:45,490 –> 00:11:47,230
ی است که میخواهیم، بنابراین این نش
287
00:11:47,230 –> 00:11:51,490
نهگذاری واقعی
288
00:11:51,490 –> 00:11:52,990
289
00:11:52,990 –> 00:11:57,579
290
00:11:57,579 –> 00:11:59,769
ست. چیزهایی که میخواهیم،
291
00:11:59,769 –> 00:12:03,190
براین اکنون ما این HTML را داریم که در
292
00:12:03,190 –> 00:12:04,690
اقع برای ما خیلی مفید نیست، زی
293
00:12:04,690 –> 00:12:06,010
ا ما باید دوست داشته با
294
00:12:06,010 –> 00:12:08,949
یم برای همه نامهای محصول اینجا را بررسی کن
295
00:12:08,949 –> 00:12:10,390
م و هر چیزی مانند این که چگونه واقعاً آن را به خو
296
00:12:10,390 –> 00:12:12,899
ی انجام دهیم، این فرآیندی است به نام تجزیه ما.
297
00:12:12,899 –> 00:12:15,490
دوباره این را می گیریم و ما
298
00:12:15,490 –> 00:12:17,560
یک ماژول پایتون می گیریم که
299
00:12:17,560 –> 00:12:23,140
XML یا HTML HTML نوع XML را می فهمد و آن را
300
00:12:23,140 –> 00:12:25,959
در یک ساختار داده پایتون تجزیه
301
00:12:25,959 –> 00:12:27,430
می کنیم که می توانیم در حال حاضر با آن کار
302
00:12:27,430 –> 00:12:28,839
کنیم، درست مانند یک رشته است
303
00:12:28,839 –> 00:12:31,690
که مرتب می شود. از flat نمی توانید این
304
00:12:31,690 –> 00:12:33,430
رشته را بپرسید هی لطفاً مانند سومین
305
00:12:33,430 –> 00:12:36,550
دیوی که دارید به من بدهید یا لطفاً
306
00:12:36,550 –> 00:12:38,769
مانند خط پنجم در
307
00:12:38,769 –> 00:12:41,829
بخش محصولات در حال حاضر به من بدهید این فقط یک
308
00:12:41,829 –> 00:12:43,570
پایتون رشته است و نمی داند چه کاری باید انجام دهد. این
309
00:12:43,570 –> 00:12:45,850
به جز مانند رشته مانند چیزهایی که j است
310
00:12:45,850 –> 00:12:49,959
حالا کاری که
311
00:12:49,959 –> 00:12:53,140
میخواهیم انجام دهیم این است که این را تجزیه کنیم، بنابراین میخواهیم
312
00:12:53,140 –> 00:12:58,990
از کتابخانهای به نام Beautiful Soup استفاده کنیم.
313
00:12:58,990 –> 00:13:01,149
بسته به نام BS چهار، یک
314
00:13:01,149 –> 00:13:03,730
Beautiful Soup چهار است، بنابراین ما
315
00:13:03,730 –> 00:13:06,339
همان کار را دوباره در جایی که پیپ میزنیم انجام میدهیم.
316
00:13:06,339 –> 00:13:08,470
اکنون متن نیازمندیهای ما را نصب کنید،
317
00:13:08,470 –> 00:13:09,850
از قبل میداند که ما
318
00:13:09,850 –> 00:13:11,470
اولین شرط را دریافت کردهایم که قبلاً
319
00:13:11,470 –> 00:13:14,680
درخواستهای برآورده شده را برآورده کردهایم، اما میبینید که
320
00:13:14,680 –> 00:13:16,899
اکنون Beautiful Soupیی را نصب میکند
321
00:13:16,899 –> 00:13:19,310
و اگر در اینجا به مشکلی برخوردید، دوباره با موفقیت این کار را انجام دادیم،
322
00:13:19,310 –> 00:13:20,660
فقط در
323
00:13:20,660 –> 00:13:23,450
گوگل دوباره اسناد را بخوانید.
324
00:13:23,450 –> 00:13:25,220
پایتون فوقالعاده زیبا، همچنین اگر فقط برای
325
00:13:25,220 –> 00:13:28,459
تجزیه HTML مانند آن جستجو
326
00:13:28,459 –> 00:13:32,770
کنید، در نهایت شما را به Beautiful Soupی
327
00:13:32,770 –> 00:13:35,029
این Beautiful Soup میرساند.
328
00:13:35,029 –> 00:13:37,779
329
00:13:37,779 –> 00:13:40,790
330
00:13:40,790 –> 00:13:42,950
یکی دیگر از
331
00:13:42,950 –> 00:13:46,220
QuickStart در اینجا واضح است که برنامه نویسان
332
00:13:46,220 –> 00:13:48,890
به وضوح نمی توانند به خواندن اسناد اعتماد کنند،
333
00:13:48,890 –> 00:13:50,630
بنابراین شروع سریع در
334
00:13:50,630 –> 00:13:52,010
صفحه اول در صفحه فرود
335
00:13:52,010 –> 00:13:53,630
مانند هر بسته وجود دارد. سنی که می خواهید
336
00:13:53,630 –> 00:13:56,600
استفاده کنید، بنابراین می توانید ببینید که آنها فقط
337
00:13:56,600 –> 00:13:58,339
به عنوان یک نمونه در سند HTML هستند که
338
00:13:58,339 –> 00:13:59,930
در واقع بسیار شبیه به متن نقطه پاسخ ما است
339
00:13:59,930 –> 00:14:03,980
و بیایید ببینیم آنها واقعاً چگونه از آن
340
00:14:03,980 –> 00:14:07,430
استفاده می کنند تا Beautiful Soup را
341
00:14:07,430 –> 00:14:09,170
از این بسته ای که ما نصب کرده ایم وارد کنند و
342
00:14:09,170 –> 00:14:11,660
سپس آنها چیزی را در یک
343
00:14:11,660 –> 00:14:13,970
متغیر میگیرند و آن چشمهای Beautiful Soup است
344
00:14:13,970 –> 00:14:16,100
که فقط از آن به عنوان یک
345
00:14:16,100 –> 00:14:19,970
تابع HTML doc استفاده میکنند و شبیه تجزیهکننده HTML است،
346
00:14:19,970 –> 00:14:21,649
بنابراین شما به آن میگویید
347
00:14:21,649 –> 00:14:23,480
که میخواهید از تجزیهکننده HTML استفاده کنید.
348
00:14:23,480 –> 00:14:25,390
که میتواند انواع دیگری از
349
00:14:25,390 –> 00:14:29,390
نشانهگذاری را انجام دهد، بنابراین هر برنامهنویس خوب میداند
350
00:14:29,390 –> 00:14:31,459
که ما این را میدزدیم و
351
00:14:31,459 –> 00:14:34,640
آن را مستقیماً در برنامهمان قرار میدهیم، بنابراین این
352
00:14:34,640 –> 00:14:38,149
کار را انجام میدهیم و این باید بعد از آن انجام شود، بنابراین
353
00:14:38,149 –> 00:14:41,149
ما درخواست خود را داریم میدانی که
354
00:14:41,149 –> 00:14:43,550
این کمی زشت میشود، من میخواهم
355
00:14:43,550 –> 00:14:45,980
این را به هشت منتقل کنم، بنابراین اکنون ما یک
356
00:14:45,980 –> 00:14:47,690
نوع محیط اکتشافی خود را
357
00:14:47,690 –> 00:14:51,890
در اینجا خواهیم داشت، بنابراین من
358
00:14:51,890 –> 00:14:54,770
دوباره این کار را انجام
359
00:14:54,770 –> 00:14:56,149
میدهم. بیشتر فضای کمی بیشتر
360
00:14:56,149 –> 00:14:59,029
برای شما برای دیدن و چسباندن این a در
361
00:14:59,029 –> 00:15:03,020
پایین، بنابراین HTML doc تعریف نشده است، اگر
362
00:15:03,020 –> 00:15:06,339
به یاد داشته باشید آنچه ما می خواستیم متن ما بود، بنابراین
363
00:15:06,339 –> 00:15:10,399
ما فقط می خواهیم این RESP
364
00:15:10,399 –> 00:15:11,600
را فقط کمی طولانی تر کنیم و سپس
365
00:15:11,600 –> 00:15:15,770
می گوییم متن RESP در واقع همان
366
00:15:15,770 –> 00:15:19,010
چیزی است که ما داریم. میخواهید که میتوانید متن
367
00:15:19,010 –> 00:15:21,260
را به انتهای این متن بچسبانید تا دقیقاً
368
00:15:21,260 –> 00:15:22,520
آن را به دست آورید، اما پس از آن
369
00:15:22,520 –> 00:15:24,260
همه چیز دیگری را از دست میدهید، در صورتی که
370
00:15:24,260 –> 00:15:25,850
بخواهیم از آن استفاده کنیم، میتوانید
371
00:15:25,850 –> 00:15:27,920
یک متغیر جدید نیز ایجاد کنید و فقط بگویید
372
00:15:27,920 –> 00:15:29,400
که RESP
373
00:15:29,400 –> 00:15:32,040
یا نشانهگذاری را میدانید. برابر با متن RESP است و سپس فقط
374
00:15:32,040 –> 00:15:34,290
از نشانه گذاری در اینجا استفاده کنید، من این کار را به
375
00:15:34,290 –> 00:15:35,910
شما واگذار می کنم، اما این روشی است که من این کار را
376
00:15:35,910 –> 00:15:38,670
سریع انجام می دهم، تجزیه کننده HTML را
377
00:15:38,670 –> 00:15:40,950
روی آن اجرا می کنیم و فقط ببینیم که ما را به کجا می رساند،
378
00:15:40,950 –> 00:15:44,130
بنابراین ما این کار را انجام خواهیم داد. همه اینها را
379
00:15:44,130 –> 00:15:48,000
دوباره در repple ما بچسبانید و می بینید که
380
00:15:48,000 –> 00:15:51,750
صفحه HTML را دریافت می کند و سوپ اختصاص داده شده است
381
00:15:51,750 –> 00:15:53,250
به طوری که قبلاً تجزیه شده است.
382
00:15:53,250 –> 00:15:56,130
383
00:15:56,130 –> 00:15:57,720
384
00:15:57,720 –> 00:15:59,790
یک
385
00:15:59,790 –> 00:16:01,590
رشته دیوانه به نظر می رسد که به نوعی
386
00:16:01,590 –> 00:16:06,570
فرمت شده است و w خوب، می دانیم که آن
387
00:16:06,570 –> 00:16:08,460
جا تجزیه شده است، ما می رویم، بنابراین می توانیم
388
00:16:08,460 –> 00:16:10,190
این شی را در یک ثانیه بررسی کنیم، اما اوه
389
00:16:10,190 –> 00:16:16,440
من، اوه من داده های زیادی دارم وای من فکر می کنم این
390
00:16:16,440 –> 00:16:18,650
ممکن است بافر اسکرول ما را از بین ببرد، نه،
391
00:16:18,650 –> 00:16:22,020
من شروع را پیدا کردم، بنابراین سوپ فقط
392
00:16:22,020 –> 00:16:25,050
از همه چیز بیرون می زند. این اطلاعات
393
00:16:25,050 –> 00:16:27,540
مانند شی stringify است
394
00:16:27,540 –> 00:16:29,070
که اساساً وقتی چیزی را در
395
00:16:29,070 –> 00:16:31,860
repple تایپ میکنید پایتون اساساً این
396
00:16:31,860 –> 00:16:34,700
نمایش رشتهای را میگیرد که
397
00:16:34,700 –> 00:16:37,200
توسعهدهنده beautifulsoup تصمیم گرفته
398
00:16:37,200 –> 00:16:39,660
است که من یک نمایش زیبا
399
00:16:39,660 –> 00:16:42,060
با قالببندی زیبا از HTML تجزیهشده را نشان میدهد،
400
00:16:42,060 –> 00:16:45,090
بنابراین بیایید ببینیم چه چیزی میتوانیم. با
401
00:16:45,090 –> 00:16:47,190
این شی انجام دهیم چگونه میتوانیم
402
00:16:47,190 –> 00:16:49,290
اسناد را درست بخوانیم، این همان چیزی است که شما گفتید
403
00:16:49,290 –> 00:16:51,650
درست بخوانید، اسناد را بخوانید همیشه
404
00:16:51,650 –> 00:16:55,350
خوب است، بنابراین به نظر میرسد که اگر فقط سوپ درست
405
00:16:55,350 –> 00:16:58,470
کنیم، واقعاً این کار را برای ما انجام میدهد، ما واقعاً نیازی به انجام آن نداریم.
406
00:16:58,470 –> 00:16:59,430
این به این دلیل است که
407
00:16:59,430 –> 00:17:00,960
ما واقعاً به چاپ آن اهمیتی نمیدهیم
408
00:17:00,960 –> 00:17:02,760
، بنابراین آن را تجزیه کردهایم و اکنون
409
00:17:02,760 –> 00:17:05,910
باید با آن کار کنیم، بنابراین بیایید ببینیم چه کاری
410
00:17:05,910 –> 00:17:08,190
میتوانیم انجام دهیم، به نظر میرسد تجزیه این به
411
00:17:08,190 –> 00:17:10,530
ما امکان میدهد به بخشهای مختلف دسترسی داشته باشیم.
412
00:17:10,530 –> 00:17:12,569
نشانه گذاری به طوری که اگر HTML می دانید می توانید
413
00:17:12,569 –> 00:17:15,030
414
00:17:15,030 –> 00:17:18,569
با استفاده از چیزهایی مانند این
415
00:17:18,569 –> 00:17:20,069
شی آنها را در ویژگی های خاصی ذخیره کرده است به بخش های مختلف آن نشانه گذاری
416
00:17:20,069 –> 00:17:22,500
HTML دسترسی پیدا کنید تا بتوانیم عنوان فوق العاده را بگوییم
417
00:17:22,500 –> 00:17:25,980
بیایید ببینیم عنوان ما چیست به نظر من خوب است.
418
00:17:25,980 –> 00:17:28,100
419
00:17:28,280 –> 00:17:31,670
آیا اینجا
420
00:17:31,670 –> 00:17:36,330
بسیار زیبا هستید و اکنون ما
421
00:17:36,330 –> 00:17:37,830
آن را وارد قلمروی می کنیم که در واقع
422
00:17:37,830 –> 00:17:40,830
برای محصول ما جالب به نظر می رسد، اکنون
423
00:17:40,830 –> 00:17:42,120
کاملاً طبیعی است که مجبور
424
00:17:42,120 –> 00:17:42,990
425
00:17:42,990 –> 00:17:44,520
باشید کاری را که انجام می دهید یادآوری کنید زیرا به راحتی
426
00:17:44,520 –> 00:17:46,140
می توانید درگیر آن شوید.
427
00:17:46,140 –> 00:17:47,760
از این کتابخانه یا این و شروع به
428
00:17:47,760 –> 00:17:49,020
بازی کردن می کنید و به نوعی فراموش
429
00:17:49,020 –> 00:17:50,490
می کنید که برای چه چیزی در وهله اول آمده
430
00:17:50,490 –> 00:17:52,860
اید، بنابراین به خصوص زمانی که در حال ساختن
431
00:17:52,860 –> 00:17:56,159
یک نمونه اولیه هستید، روی
432
00:17:56,159 –> 00:17:59,970
چیزی که می خواهید انجام دهید تمرکز کنید، بنابراین قبل
433
00:17:59,970 –> 00:18:04,409
از اینکه وارد این کار شویم باید
434
00:18:04,409 –> 00:18:06,750
بفهمیم که واقعاً چه چیزی میخواهیم برای آن جمعآوری
435
00:18:06,750 –> 00:18:08,970
کنیم که به صفحه وب بازگردیم، بنابراین این
436
00:18:08,970 –> 00:18:10,890
چیزی است که ما میخواهیم به
437
00:18:10,890 –> 00:18:14,820
روشی برای شناسایی سطوح مانند
438
00:18:14,820 –> 00:18:17,010
پرداخت 1 دلار یا بیشتر پرداخت هشت دلار یا بیشتر
439
00:18:17,010 –> 00:18:19,500
بلا بل بله و سپس محصولات، پس
440
00:18:19,500 –> 00:18:22,200
بیایید ببینیم چگونه میتوانیم این کار را انجام دهیم که یکی
441
00:18:22,200 –> 00:18:23,820
از ابزارهای واقعا مفید این است که
442
00:18:23,820 –> 00:18:26,190
روی هر عنصری کلیک راست کرده و سپس گزینه Inspect عنصر را انتخاب کنید،
443
00:18:26,190 –> 00:18:28,740
فکر میکنم همه مرورگرهای اصلی
444
00:18:28,740 –> 00:18:30,510
این را دارند.
445
00:18:30,510 –> 00:18:33,630
آزادی و سپس فقط عنصر را بررسی کنید،
446
00:18:33,630 –> 00:18:34,740
بنابراین روی چیزی
447
00:18:34,740 –> 00:18:36,000
که در مورد آن کنجکاو هستید کلیک راست کنید و
448
00:18:36,000 –> 00:18:38,039
در این نمایش
449
00:18:38,039 –> 00:18:40,289
از Dom مدل شی سند برجسته می شود، بنابراین می
450
00:18:40,289 –> 00:18:41,850
توانید ببینید که می توانید هر یک از
451
00:18:41,850 –> 00:18:43,620
این ها را بازرسی کنید و می توانید آنها را باز یا بسته کنید. درست
452
00:18:43,620 –> 00:18:45,179
مانند کدی که در ویرایشگر شما پنهان می شود
453
00:18:45,179 –> 00:18:49,289
و به نظر می رسد این کلاسی که ما
454
00:18:49,289 –> 00:18:53,130
می خواهیم سرفصل DD باشد، به یاد داشته باشید که
455
00:18:53,130 –> 00:18:56,490
در حال حاضر می توانیم آن را کپی کنیم و
456
00:18:56,490 –> 00:18:58,559
ببینیم که آیا دومین مورد نیز
457
00:18:58,559 –> 00:19:00,539
عنوان سرصفحه DD است، بله، به نظر می رسد
458
00:19:00,539 –> 00:19:03,110
مانند این باشد. همه سرفصلهای DD هستند،
459
00:19:03,110 –> 00:19:05,760
بنابراین به نظر میرسد عنصری که ما میخواهیم دارای
460
00:19:05,760 –> 00:19:08,940
یک کلاس از عنوان سرصفحه DD باشد، اگر شما
461
00:19:08,940 –> 00:19:11,669
کاملاً با HTML تازه کار هستید، دقیقاً مانند سعی کنید
462
00:19:11,669 –> 00:19:13,260
دنبال کنید، نیازی به
463
00:19:13,260 –> 00:19:15,350
درک کامل آن ندارید، بلکه اساساً
464
00:19:15,350 –> 00:19:17,970
hTML از عناصر تشکیل شده است عناصری که میتوانند
465
00:19:17,970 –> 00:19:21,360
شناسه داشته باشند یا کلاسها استفاده
466
00:19:21,360 –> 00:19:24,120
میشوند زیرا اغلب برای استایلسازی برای
467
00:19:24,120 –> 00:19:26,929
نشانهگذاری استفاده میشوند و برای نظمدهی معنایی
468
00:19:26,929 –> 00:19:30,149
مشابهی مانند
469
00:19:30,149 –> 00:19:34,140
سلسلهمراتب اطلاعاتی که HTML است فقط به نوعی
470
00:19:34,140 –> 00:19:35,549
ذهن خود را باز کنید که اینها را دنبال کنید.
471
00:19:35,549 –> 00:19:37,710
تگهایی که میتوانیم این
472
00:19:37,710 –> 00:19:39,779
سند را درست جستجو کنیم، بنابراین اگر
473
00:19:39,779 –> 00:19:41,010
هر چیزی را که دارای یک کلاس از این است جستجو
474
00:19:41,010 –> 00:19:42,990
کنیم، هر عنصری که این کلاس
475
00:19:42,990 –> 00:19:46,440
به آن اختصاص داده شده است مانند کلاس h2 blah نشان داده میشود، ممکن است h2
476
00:19:46,440 –> 00:19:48,960
هایی وجود داشته باشند که
477
00:19:48,960 –> 00:19:50,850
کلاس متفاوتی دارند، ممکن است h2s وجود داشته باشد.
478
00:19:50,850 –> 00:19:52,889
که اصلاً کلاسی به آنها اضافه نشده است،
479
00:19:52,889 –> 00:19:56,070
آنهایی که در جستجوی ما نشان داده نمی شوند، بنابراین در
480
00:19:56,070 –> 00:19:56,909
حال حاضر فقط
481
00:19:56,909 –> 00:19:58,590
با من همراه باشید و
482
00:19:58,590 –> 00:20:00,330
اگر می
483
00:20:00,330 –> 00:20:01,710
خواهید بیشتر در مورد چگونگی HTML بدانید، متوجه خواهید شد که چگونه کار می کند. کار
484
00:20:01,710 –> 00:20:03,119
می کند واقعاً ساده است شما می توانید
485
00:20:03,119 –> 00:20:04,559
اصول اولیه را یاد بگیرید که در مورد همه چیزهایی است که
486
00:20:04,559 –> 00:20:07,259
در عرض یک یا دو ساعت نیاز دارید، من توصیه می
487
00:20:07,259 –> 00:20:08,580
کنم این کار را در مقطعی انجام دهید، اما این
488
00:20:08,580 –> 00:20:09,840
مهم نیست که در حال حاضر یک متخصص HTML هستید،
489
00:20:09,840 –> 00:20:14,009
پس بیایید فقط مانند
490
00:20:14,009 –> 00:20:17,009
مارس k این پایین که احتمالاً می
491
00:20:17,009 –> 00:20:21,960
گوییم bundle tears و این
492
00:20:21,960 –> 00:20:24,869
به ما یادآوری می کند که به نظر می رسد هر ردیف دارای
493
00:20:24,869 –> 00:20:27,239
عنوان مشابه است یا نام و
494
00:20:27,239 –> 00:20:29,669
قیمت ذخیره شده در
495
00:20:29,669 –> 00:20:32,519
کلاس های سرفصل DD اساساً از طریق این نقطه قابل دسترسی است.
496
00:20:32,519 –> 00:20:35,700
نمادگذاری در چیزهایی مانند
497
00:20:35,700 –> 00:20:38,629
خوب در جاوا اسکریپت، بنابراین چگونه میتوانیم
498
00:20:38,629 –> 00:20:41,249
به عنصر مورد نظر خود دسترسی پیدا کنیم، بیایید
499
00:20:41,249 –> 00:20:43,320
آزمایش کنیم تا ببینیم آیا این همان چیزی است که ما
500
00:20:43,320 –> 00:20:46,139
میخواهیم، فکر میکنیم میدانیم، بنابراین این سو
501
00:20:46,139 –> 00:20:49,649
را پیدا کردهایم و در واقع به نظر می
502
00:20:49,649 –> 00:20:53,720
رسد چیزی است ممکن
503
00:20:53,720 –> 00:20:55,830
است بخواهیم سعی کنیم این را در اینجا بچسبانیم و
504
00:20:55,830 –> 00:20:57,629
به جای یک عنوان بگوییم
505
00:20:57,629 –> 00:21:05,279
سرفصل کلاس DD را می خواهیم، فقط ببینیم آی
506
00:21:05,279 –> 00:21:07,259
این همان چیزی است که ما می خواهیم این بر
507
00:21:07,259 –> 00:21:12,509
ی ما کار نمی کند. h2 چه چیزی
508
00:21:12,509 –> 00:21:18,989
بود خوب بله پس نزدیک است به
509
00:21:18,989 –> 00:21:19,889
نظر نمی رسد این روش در واقع
510
00:21:19,889 –> 00:21:22,080
آنچه را که ما می خواهیم درست انجام می دهد، بنابراین به نظر
511
00:21:22,080 –> 00:21:27,389
می رسد یافتن همه چیز از نوع عنصر برچسب باشد، بنابراین
512
00:21:27,389 –> 00:21:30,330
می تواند به ما اجازه دهد همه سرفصل های دو را پیدا کنیم،
513
00:21:30,330 –> 00:21:35,909
اما یک عدد را برمی گرداند. لیستی از چیزهایی
514
00:21:35,909 –> 00:21:42,299
که شاید خوب این نزدیک است این ممکن است
515
00:21:42,299 –> 00:21:46,109
مفید باشد چرا این تست را e نمی نامیم
516
00:21:46,109 –> 00:21:47,849
و سپس می گوییم testy
517
00:21:47,849 –> 00:21:54,570
اولین عنصری است که این می تواند برای ما کار کند، اما
518
00:21:54,570 –> 00:21:57,509
من این روش انتخابی را نیز پیدا کرده ام که
519
00:21:57,509 –> 00:22:00,529
به نظر می رسد می توانیم به طور خاص کلاس ها را دریافت کنیم
520
00:22:00,529 –> 00:22:02,669
و این همان چیزی است که ما
521
00:22:02,669 –> 00:22:04,859
می خواهیم زیرا به نظر می رسد که فعلاً می توانیم
522
00:22:04,859 –> 00:22:06,599
با آن کار کنیم، اما اگر چیز
523
00:22:06,599 –> 00:22:08,609
دیگری وجود داشته باشد، اگر h2 دیگری در این صفحه
524
00:22:08,609 –> 00:22:10,650
وجود داشته باشد، کد ما را خراب می کند،
525
00:22:10,650 –> 00:22:13,080
زیرا ما
526
00:22:13,080 –> 00:22:14,690
به کلاسی که می خواهیم محدود نمی شویم، این فقط هر
527
00:22:14,690 –> 00:22:17,760
دو عنوان است. این را کمی
528
00:22:17,760 –> 00:22:19,559
کمتر ترد کنید و مانند خراش دادن صفحات وب
529
00:22:19,559 –> 00:22:21,330
همیشه شکننده است، زیرا مردم
530
00:22:21,330 –> 00:22:23,130
وب سایت های خود را تغییر می دهند و سپس موارد خراب می شود،
531
00:22:23,130 –> 00:22:24,210
باید آن را اصلاح کنید و بفهمید چه چیزی
532
00:22:24,210 –> 00:22:26,610
تغییر کرده است، بنابراین مقداری از آن مهندسی معکوس وجود دارد که
533
00:22:26,610 –> 00:22:28,920
چرا ما سعی نمی کنیم از آن استفاده کنیم.
534
00:22:28,920 –> 00:22:33,360
که روی چیزی که میخواهیم
535
00:22:33,360 –> 00:22:37,550
عنوان سرصفحه dd را انتخاب کنیم، پس بیایید سوپ را انتخاب
536
00:22:37,550 –> 00:22:41,750
کنیم و خوب انجام میدهیم، بیایید فقط کلاس را امتحان کنیم
537
00:22:41,750 –> 00:22:44,880
در صورتی که آن را از h2
538
00:22:44,880 –> 00:22:47,370
به چیز دیگری تغییر دهند، اکنون اساساً
539
00:22:47,370 –> 00:22:48,660
شبیه به همان است، اما اینطور خواهد
540
00:22:48,660 –> 00:22:50,070
شد. کمی بهتر است زیرا فقط
541
00:22:50,070 –> 00:22:53,520
عناصر را بدون در نظر گرفتن اینکه کدام تگ
542
00:22:53,520 –> 00:22:55,170
هستند می گیرد، چه در h2 هستند یا یک
543
00:22:55,170 –> 00:22:58,860
پاراگراف مهم نیست و بیایید
544
00:22:58,860 –> 00:23:03,030
اینجا را امتحان کنیم، بیایید دوباره اولین عنصر را دریافت
545
00:23:03,030 –> 00:23:05,580
کنیم و اساساً هنوز همان
546
00:23:05,580 –> 00:23:08,250
چیزی است که عالی است بنابراین ما از
547
00:23:08,250 –> 00:23:11,610
این انتخاب استفاده میکنیم و میخواهیم بگوییم
548
00:23:11,610 –> 00:23:15,330
که متن این عنصر را میخواهیم و این یک
549
00:23:15,330 –> 00:23:17,160
لیست است، بنابراین من احمق هستم،
550
00:23:17,160 –> 00:23:20,250
بنابراین میگوییم Testes Zero text بنابراین یک
551
00:23:20,250 –> 00:23:22,980
عنصر واقعی است تا
552
00:23:22,980 –> 00:23:26,010
واقع بینانه به نظر برسد. متن بدون
553
00:23:26,010 –> 00:23:29,010
تگ های اطراف آن چیزی که ما واقعاً می
554
00:23:29,010 –> 00:23:32,880
خواهیم اینجا انجام دهیم این است که اوه نه استیپ است، اما ما یک
555
00:23:32,880 –> 00:23:37,890
فضای سفید نواری از اطراف آن می خواهیم و اکنون
556
00:23:37,890 –> 00:23:39,960
به نظر می رسد که ما می خواهیم، بنابراین این در وا
557
00:23:39,960 –> 00:23:42,960
ع یکی از اط
558
00:23:42,960 –> 00:23:45,059
اعاتی است که ما می خواهیم. میخواهیم، حالا باید بفهمیم که چگ
559
00:23:45,059 –> 00:23:48,780
نه دوباره این را به دست آوردهایم، بنابراین ای
560
00:23:48,780 –> 00:23:52,320
است و سپس برای هر یک از آن عن
561
00:23:52,320 –> 00:23:53,850
صر، متن را میگیریم و فض
562
00:23:53,850 –> 00:23:57,059
ی سفید را از آن حذف میکنیم، اگر من
563
00:23:57,059 –> 00:23:58,260
قی نیست، ویدیو را مکث کنیم و فق
564
00:23:58,260 –> 00:24:00,450
لایک کنیم. به کارهایی که در اینجا انجام داده ایم نگاه کنید
565
00:24:00,450 –> 00:24:04,620
و آن را در قسمت مشاهده خواهید کرد کد را فقط در یک
566
00:24:04,620 –> 00:24:08,010
ثانیه، بنابراین ما می گوییم سوپ را انتخاب کنید، ما این را
567
00:24:08,010 –> 00:24:12,080
می گیریم، در اینجا می گوییم
568
00:24:12,080 –> 00:24:13,410
سرفصل ها.
569
00:24:13,410 –> 00:24:15,179
حدس می زنم نام گذاری چیزها سخت است و
570
00:24:15,179 –> 00:24:16,590
571
00:24:16,590 –> 00:24:17,910
اگر می گویید چیزی است که می شود قطعاً می توانید نام این چیزها را تغییر دهید.
572
00:24:17,910 –> 00:24:19,590
در غیر این صورت، پس
573
00:24:19,590 –> 00:24:21,540
اگر به یاد داشته باشید که این یک شی فهرست
574
00:24:21,540 –> 00:24:23,020
575
00:24:23,020 –> 00:24:25,840
است و حاوی همه این
576
00:24:25,840 –> 00:24:27,250
عناصر است که در واقع همانهایی هستند که ما می خواهیم، ما این لیست را داریم، بن
577
00:24:27,250 –> 00:24:32,440
براین کاری که ما انجام خواهیم داد این است که من مانند یک
578
00:24:32,440 –> 00:24:37,650
لقه for برای پارگی و پارگی انجام می دهم. سرفصلها با
579
00:24:37,650 –> 00:24:40,660
آن چه کنیم، آن را حذف
580
00:24:40,660 –> 00:24:43,150
کردیم، متن را گرفتیم و سپس آن
581
00:24:43,150 –> 00:24:46,050
متن را حذف کردیم و آن چیزی را که میخواستیم به ما داد، بنابراین
582
00:24:46,050 –> 00:24:48,160
از کپی و پیست کردن اینجا نترسید
583
00:24:48,160 –> 00:24:52,030
بچهها میگویند که فعلاً چه چیزی را چاپ
584
00:24:52,030 –> 00:24:52,930
میکنیم بسیار خب،
585
00:24:52,930 –> 00:24:59,080
پس می گوییم متن stripped این پارگی را چاپ کنید،
586
00:24:59,080 –> 00:25:01,870
خوب پس
587
00:25:01,870 –> 00:25:03,640
این عنصری خواهد بود که هر یک از آن
588
00:25:03,640 –> 00:25:07,960
h2 ها در اینجا به این شکل خواهد بود، بنابراین مانند
589
00:25:07,960 –> 00:25:10,480
یکی از این ها خواهد بود و سپس ما
590
00:25:10,480 –> 00:25:15,240
stripped را چاپ می کنیم. متنی مانند اینجا
591
00:25:15,240 –> 00:25:18,670
بیایید این را در فلج خود امتحان کنیم ببینیم آیا
592
00:25:18,670 –> 00:25:20,860
آن چیزی که ما می خواهیم را انجام می دهد، بنابراین این
593
00:25:20,860 –> 00:25:24,400
دوباره است متحد فقط نسخه Python Oh
594
00:25:24,400 –> 00:25:25,480
از کاری که ما انجام دادیم،
595
00:25:25,480 –> 00:25:28,600
این در واقع عالی به نظر می رسد، با این تفاوت که ما
596
00:25:28,600 –> 00:25:31,990
در اینجا یک سازمان خیریه حمایتی داریم
597
00:25:31,990 –> 00:25:35,860
که آزاردهنده است، نمی دانم اگر این
598
00:25:35,860 –> 00:25:41,140
یک h2 نیست، بیایید ببینیم بله، من کاملاً
599
00:25:41,140 –> 00:25:44,080
آن h2 آخر را از دست دادم. خوب،
600
00:25:44,080 –> 00:25:47,650
پس چرا سرفصل های شما را چهار ردیف دو
601
00:25:47,650 –> 00:25:48,330
602
00:25:48,330 –> 00:25:51,310
نمی کنیم چرا فقط h2s را انتخاب نمی کنیم، نمی دانم که آیا
603
00:25:51,310 –> 00:25:55,780
این یک چاپ h2 در نوار متن شما نیست،
604
00:25:55,780 –> 00:26:00,220
اوه اوه، اوه، اوه و سپس ما برای سرفصل های شما این کار را انجام می دهیم، نه
605
00:26:00,220 –> 00:26:03,790
606
00:26:03,790 –> 00:26:07,240
هنوز هم وجود دارد، خیریه پشتیبانی
607
00:26:07,240 –> 00:26:10,030
این خیلی آزاردهنده است، بیایید بررسی
608
00:26:10,030 –> 00:26:14,710
کنیم لعنتی، قطعاً
609
00:26:14,710 –> 00:26:20,350
یک عنوان DD در هدر DD است، آیا چیزی وجود دارد
610
00:26:20,350 –> 00:26:21,700
که این را از بقیه متفاوت می کند
611
00:26:21,700 –> 00:26:24,130
، زیرا در این صورت می توانیم از آن
612
00:26:24,130 –> 00:26:28,480
برای جداسازی محتوای اصلی دیگران استفاده کنیم.
613
00:26:28,480 –> 00:26:31,390
نمیدانم که آیا در محتوای اصلی نیست،
614
00:26:31,390 –> 00:26:34,510
اوه، میبینم، پس مثل این است که سه تا از این
615
00:26:34,510 –> 00:26:36,669
دیویهای محتوای اصلی روی هم چیده شدهاند،
616
00:26:36,669 –> 00:26:42,399
لعنتی این یک محتوای اصلی است، لعنتی
617
00:26:42,399 –> 00:26:48,149
، یک محتوای اصلی است، یکی دو، بنابراین
618
00:26:48,149 –> 00:26:50,769
من فعلاً این را ترک میکنم. ببینید
619
00:26:50,769 –> 00:26:53,379
چگونه تاثیر می گذارد ما و ما می توانیم
620
00:26:53,379 –> 00:26:54,669
بعداً در مورد آن نگران باشیم. نمی
621
00:26:54,669 –> 00:26:59,019
خواهم فقط با دسترسی
622
00:26:59,019 –> 00:27:03,700
به یک دو سه،
623
00:27:03,700 –> 00:27:06,309
فقط بیایید ببینیم چه چیزی
624
00:27:06,309 –> 00:27:07,659
به ما می دهد، بعداً می توانیم راهی برای
625
00:27:07,659 –> 00:27:09,100
خلاص شدن از شر آن پیدا کنیم. هنگامی که ما تصور بهتری
626
00:27:09,100 –> 00:27:10,269
از ظاهر این برنامه داشته باشیم
627
00:27:10,269 –> 00:27:12,070
، چند لبه ناهموار در
628
00:27:12,070 –> 00:27:14,379
یک نمونه اولیه خوب هستند، به شرطی که شما به نوعی آنها را
629
00:27:14,379 –> 00:27:17,379
دنبال کنید، بنابراین در readme می
630
00:27:17,379 –> 00:27:19,480
خواهیم بگوییم که من دوست دارم این دو هزینه را قرار دهم.
631
00:27:19,480 –> 00:27:25,809
در بالای صفحه یا گرفتن خیریه حمایتی به
632
00:27:25,809 –> 00:27:29,889
عنوان یک اشتباه عنوان فقط برای اینکه دوست داشته باشیم
633
00:27:29,889 –> 00:27:31,389
بدانیم که این یک معامله ای است که ما انجام می دهیم،
634
00:27:31,389 –> 00:27:34,239
بنابراین این به
635
00:27:34,239 –> 00:27:36,100
اندازه کافی خوب است زیرا در حال حاضر ما این
636
00:27:36,100 –> 00:27:40,239
چیزها را داریم و می توانیم آنها را چاپ کنیم و ما
637
00:27:40,239 –> 00:27:41,950
میتوانیم از شر این آخری خلاص شویم و بعداً
638
00:27:41,950 –> 00:27:44,679
آن را بفهمیم در این مرحله، باید به
639
00:27:44,679 –> 00:27:47,619
نوعی از خود بپرسیم که دقیقاً به
640
00:27:47,619 –> 00:27:49,989
چه چیزی میخواهیم دست یابیم، مانند جایی
641
00:27:49,989 –> 00:27:51,429
که میدانیم اکنون میتوانیم به این دادهها دسترسی
642
00:27:51,429 –> 00:27:54,129
داشته باشیم، در واقع برای ما ممکن است
643
00:27:54,129 –> 00:27:58,299
و بنابراین اجازه دهید در واقع نوعی
644
00:27:58,299 –> 00:27:59,739
ساختار داده ای را طراحی کنیم که می خواهیم و می خواهیم میتوانیم این کار را
645
00:27:59,739 –> 00:28:02,529
درست در اینجا انجام دهیم، ما فقط
646
00:28:02,529 –> 00:28:06,039
آن را بهعنوان برخی از نظرات انجام میدهیم یا میتوانم
647
00:28:06,039 –> 00:28:08,769
بعداً آن را نظر بدهم تا دادههایی که
648
00:28:08,769 –> 00:28:10,330
واقعاً میخواهیم مانند
649
00:28:10,330 –> 00:28:12,369
هدف چیست، بنابراین برقراری
650
00:28:12,369 –> 00:28:14,169
ارتباط برقرار کردهایم، میتوانیم آن را تجزیه کنیم.
651
00:28:14,169 –> 00:28:16,960
پاسخ ما میتوانیم به چیزهایی در آنجا دسترسی داشته باشیم،
652
00:28:16,960 –> 00:28:18,519
اما موفقیت برای این
653
00:28:18,519 –> 00:28:20,409
نمونه اولیه واقعاً به نظر میرسد،
654
00:28:20,409 –> 00:28:23,139
چیزی که فکر میکنم فقط برای
655
00:28:23,139 –> 00:28:26,529
فاز اول این پروژه میخواهیم، ساختار دادهای اس
656
00:28:26,529 –> 00:28:29,109
که به نظر می
657
00:28:29,109 –> 00:28:31,119
رسد من آن را به یک هنوز ساختار داده خاصی
658
00:28:31,119 –> 00:28:32,049
دارد زیرا میخواهم
659
00:28:32,049 –> 00:28:33,940
ساختارهای داده در پایتون را حدس بزنید
660
00:28:33,940 –> 00:28:36,070
که ممکن است برای این مجموعه از نوعی
661
00:28:36,070 –> 00:28:38,889
مجموعه استفاده کنیم که برای هر یک از این
662
00:28:38,889 –> 00:28:44,889
لایهها نام و قیمت لایه و
663
00:28:44,889 –> 00:28:47,080
سپس ب