در این مطلب، ویدئو خزنده وب ساده در پایتون با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:34:20
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,320 –> 00:00:02,560
در این ویدیو قصد دارم به شما نشان دهم که چگونه
2
00:00:02,560 –> 00:00:05,120
خزنده های وب را در پایتون بنویسید،
3
00:00:05,120 –> 00:00:07,200
بنابراین خزنده های وب برنامه های رایانه ای هستند
4
00:00:07,200 –> 00:00:10,000
که می توانند وب سایت ها را بخزند و داده ها را خراش دهند،
5
00:00:10,000 –> 00:00:13,120
گاهی اوقات آنها همچنین به آن وب اسکراپر می گویند،
6
00:00:13,120 –> 00:00:15,599
اکنون همه وب سایت ها به راحتی قابل
7
00:00:15,599 –> 00:00:17,520
خراش نیستند و گاهی اوقات حتی اینطور نیست.
8
00:00:17,520 –> 00:00:19,439
مجاز است اما در این ویدیو
9
00:00:19,439 –> 00:00:22,400
من قصد دارم یک وب سایت کتابفروشی را جستجو
10
00:00:22,400 –> 00:00:23,600
کنم و داده
11
00:00:23,600 –> 00:00:26,480
های هر کتاب را دریافت کنم و نیازی نیست نگران باشید
12
00:00:26,480 –> 00:00:28,400
این یک کتابفروشی واقعی نیست، بلکه
13
00:00:28,400 –> 00:00:30,240
وب سایت به گونه ای ایجاد شده است که
14
00:00:30,240 –> 00:00:32,880
مردم بتوانند خزیدن یا خراش دادن وب را تمرین کنند
15
00:00:32,880 –> 00:00:33,920
16
00:00:33,920 –> 00:00:35,920
و نکته دیگری که میخواهم به خاطر
17
00:00:35,920 –> 00:00:37,280
داشته باشید که
18
00:00:37,280 –> 00:00:40,239
راههای سادهتری برای انجام این کار وجود دارد، اما من
19
00:00:40,239 –> 00:00:42,640
میخواهم از بیان منظم استفاده کنم
20
00:00:42,640 –> 00:00:45,680
که چیز زیبای دیگری است و
21
00:00:45,680 –> 00:00:47,840
اگر نمیدانید چگونه از
22
00:00:47,840 –> 00:00:50,480
بیان منظم یا به طور خلاصه regex استفاده کنید،
23
00:00:50,480 –> 00:00:52,239
هنوز هم میتوانید این ویدیو را دنبال کنید،
24
00:00:52,239 –> 00:00:54,559
بعداً می توانید regex را از هر کتاب
25
00:00:54,559 –> 00:00:56,800
یا در اینترنت یاد بگیرید
26
00:00:56,800 –> 00:00:59,199
و اگر به دنبال کتاب بنگلا هستید،
27
00:00:59,199 –> 00:01:01,680
من قبلاً در مورد این
28
00:01:01,680 –> 00:01:03,920
عبارت منظم و خزیدن وب در
29
00:01:03,920 –> 00:01:04,959
30
00:01:04,959 –> 00:01:08,960
کتاب خود به نام python the progr بحث کرده ام.
31
00:01:09,040 –> 00:01:12,880
بنابراین به هر حال بیایید شروع کنیم بنابراین ابتدا
32
00:01:12,880 –> 00:01:14,479
33
00:01:14,479 –> 00:01:17,759
کمی وقت صرف می کنیم
34
00:01:17,759 –> 00:01:19,520
تا وب سایتی را که می خواهیم پیمایش کنیم، بنابراین
35
00:01:19,520 –> 00:01:21,280
این سایت در سمت چپ است که می
36
00:01:21,280 –> 00:01:22,080
بینید
37
00:01:22,080 –> 00:01:24,880
کتاب ها بر اساس دسته بندی فهرست شده اند و
38
00:01:24,880 –> 00:01:25,520
در اینجا
39
00:01:25,520 –> 00:01:27,759
در سمت راست می توانید ببینید که
40
00:01:27,759 –> 00:01:29,600
آنها همه محصولات را نمایش می دهند
41
00:01:29,600 –> 00:01:32,640
و 1000 نتیجه وجود دارد و در هر
42
00:01:32,640 –> 00:01:34,000
صفحه در
43
00:01:34,000 –> 00:01:37,759
مجموع 20 نتیجه را نشان می دهند و اکنون اگر
44
00:01:37,759 –> 00:01:40,799
روی هر یک از نتایج کلیک کنید
45
00:01:40,799 –> 00:01:42,880
تا بتوانید اطلاعات
46
00:01:42,880 –> 00:01:43,840
دقیق این کتاب را مشاهده کنید
47
00:01:43,840 –> 00:01:47,200
بنابراین این قیمت عنوان است و ما داریم
48
00:01:47,200 –> 00:01:48,720
توضیحات محصول در اینجا
49
00:01:48,720 –> 00:01:51,600
و برخی اطلاعات بیشتر محصول
50
00:01:51,600 –> 00:01:53,520
مانند برچسبهای قیمت نوع محصول upc
51
00:01:53,520 –> 00:01:56,880
و غیره و سپس محصولاتی که اخیراً مشاهده کردهاید،
52
00:01:56,880 –> 00:01:59,280
53
00:01:59,280 –> 00:02:02,640
پس بیایید به صفحه اصلی یا صفحه اصلی بازگردیم
54
00:02:02,640 –> 00:02:04,240
55
00:02:04,240 –> 00:02:07,920
تا کاری که میتوانید انجام دهید این است که بتوانیم
56
00:02:07,920 –> 00:02:09,360
بر اساس دستهبندی بخزیم
57
00:02:09,360 –> 00:02:12,560
یا بخزیم. همه محصولات
58
00:02:12,560 –> 00:02:16,720
پس بیایید با خزیدن همه محصولات شروع
59
00:02:16,720 –> 00:02:19,360
کنیم، بنابراین باید محتوای این
60
00:02:19,360 –> 00:02:21,040
صفحه html را دریافت کنیم
61
00:02:21,040 –> 00:02:23,280
و سپس عبارت منظم بنویسیم که
62
00:02:23,280 –> 00:02:26,319
بتواند لینک های این کتاب ها را استخراج کند
63
00:02:26,319 –> 00:02:30,000
و سپس باید صفحه بعدی را نیز بازدید کنیم.
64
00:02:30,000 –> 00:02:31,599
65
00:02:31,599 –> 00:02:35,840
برای انجام این کار، اجازه دهید ابتدا شروع
66
00:02:35,840 –> 00:02:36,400
67
00:02:36,400 –> 00:02:40,000
کنیم، بنابراین کاری که باید انجام دهیم این است که محتوای صفحه را بدست آوریم،
68
00:02:40,000 –> 00:02:42,640
69
00:02:46,800 –> 00:02:50,879
سپس تمام
70
00:02:50,879 –> 00:02:54,319
پیوندهای صفحات کتاب تصویری را استخراج کنیم
71
00:02:54,319 –> 00:02:58,239
و
72
00:02:58,239 –> 00:03:03,280
در نهایت برای هر صفحه جداگانه
73
00:03:03,280 –> 00:03:06,800
74
00:03:06,800 –> 00:03:11,760
شکل گیری کتاب را دریافت
75
00:03:16,840 –> 00:03:19,599
76
00:03:19,599 –> 00:03:21,760
کنیم اکنون اولین وظیفه ما این است که محتوای صفحه را دریافت کنید
77
00:03:21,760 –> 00:03:23,040
و برای این
78
00:03:23,040 –> 00:03:26,000
ما از ماژول درخواست ها در پایتون استفاده خواهیم کرد، زیرا این ماژول داخلی پایتون
79
00:03:26,000 –> 00:03:27,840
نیست،
80
00:03:27,840 –> 00:03:30,319
بنابراین باید
81
00:03:30,319 –> 00:03:31,280
آن را
82
00:03:31,280 –> 00:03:34,879
در رایانه خود نصب کنید، بنابراین اگر آنجا نیست،
83
00:03:34,879 –> 00:03:36,560
فقط می توانید
84
00:03:36,560 –> 00:03:39,680
درخواست های نصب pip3 را بنویسید
85
00:03:39,680 –> 00:03:42,319
سپس این کار انجام می شود. نصب کنید و نه اینجا در
86
00:03:42,319 –> 00:03:43,680
ترمینال و
87
00:03:43,680 –> 00:03:45,840
در رایانه شما ماژول درخواست را برای شما نصب خواهد کرد،
88
00:03:45,840 –> 00:03:47,440
89
00:03:47,440 –> 00:03:51,680
بنابراین به هر حال اجازه دهید من یک تابع
90
00:03:51,680 –> 00:03:56,239
بنویسم محتوای صفحه دریافت کنید تا یک URL دریافت کند
91
00:03:56,239 –> 00:04:01,840
و
92
00:04:02,480 –> 00:04:05,200
سپس شما باید یک درخواست git برای
93
00:04:05,200 –> 00:04:06,560
دریافت url ارسال کنید
94
00:04:06,560 –> 00:04:10,080
و سپس متن html باید
95
00:04:10,080 –> 00:04:14,799
متن r نقطه ای باشد
96
00:04:14,799 –> 00:04:18,079
و بیایید ببینیم چه چیزی به دست می
97
00:04:18,079 –> 00:04:21,358
آوریم، متن html را چاپ می کنیم
98
00:04:21,358 –> 00:04:24,960
و حالا باید تابع را فراخوانی
99
00:04:26,840 –> 00:04:29,840
کنیم
100
00:04:40,639 –> 00:04:44,880
و فقط محتوا را از اینجا برگردانیم
101
00:04:46,479 –> 00:04:57,840
و بیایید آن را در اینجا چاپ کنیم
102
00:04:58,080 –> 00:05:02,400
تا محتوای نام تعریف نشده باشد
103
00:05:04,560 –> 00:05:07,600
بنابراین باید URL در اینجا باشد. محتوایی نیست، ما
104
00:05:07,600 –> 00:05:11,840
چیز اشتباهی را ارسال می کنیم،
105
00:05:12,000 –> 00:05:15,280
بنابراین می توانید ببینید که ما صفحه html را داریم،
106
00:05:15,280 –> 00:05:17,600
107
00:05:17,919 –> 00:05:20,720
اما فضاهای خالی یا خطوط خالی زیادی وجود دارد که
108
00:05:20,720 –> 00:05:22,880
109
00:05:22,880 –> 00:05:25,840
باید از شر آنها خلاص شوید،
110
00:05:25,919 –> 00:05:28,160
بنابراین باید این کار را در ماژول محتوای صفحه دریافت کنید
111
00:05:28,160 –> 00:05:31,039
112
00:05:35,199 –> 00:05:38,400
تا وجود داشته باشد. یک ماژول فرعی در
113
00:05:38,400 –> 00:05:40,880
حال وارد کردن مجدد است،
114
00:05:42,240 –> 00:05:44,720
115
00:05:46,400 –> 00:05:49,039
بنابراین این کتابخانه مجدد برای عبارات منظم استفاده می شود،
116
00:05:49,039 –> 00:05:51,199
117
00:05:51,199 –> 00:05:56,320
بنابراین اگر array.sub را تایپ کنید
118
00:05:57,840 –> 00:06:00,800
، باید یک الگو را
119
00:06:00,800 –> 00:06:02,400
در اینجا بنویسیم
120
00:06:02,400 –> 00:06:06,000
و این الگوی اسلش به اضافه خواهد بود
121
00:06:06,000 –> 00:06:09,440
و باید با یک فضای منفرد جایگزین شود
122
00:06:09,440 –> 00:06:12,960
که باید روی آن کار کند. این متغیر
123
00:06:12,960 –> 00:06:15,440
یا این رشته و مقدار بازگشتی
124
00:06:15,440 –> 00:06:17,600
نیز در متن html ذخیره می شود
125
00:06:17,600 –> 00:06:19,520
و حالا بیایید برنامه را اجرا کنیم تا ببینیم
126
00:06:19,520 –> 00:06:21,120
چه چیزی
127
00:06:21,120 –> 00:06:24,720
می توانیم بدست آوریم و اکنون می بینید که
128
00:06:24,720 –> 00:06:26,960
متراکم تر است و هیچ
129
00:06:26,960 –> 00:06:29,360
خط خالی غیر ضروری وجود ندارد
130
00:06:29,360 –> 00:06:31,840
و ما به آنها در اینجا نیاز نداریم. که
131
00:06:31,840 –> 00:06:32,479
خوب است،
132
00:06:32,479 –> 00:06:36,720
بنابراین ما اولین قدم خود را انجام دادیم
133
00:06:36,720 –> 00:06:39,360
و سپس بیایید به وب سایت برگردیم
134
00:06:39,360 –> 00:06:40,800
و ببینیم
135
00:06:40,800 –> 00:06:44,160
چگونه می توانیم این صفحات جداگانه را دریافت کنیم،
136
00:06:44,160 –> 00:06:47,280
بنابراین اگر روی Inspect در مرورگر خود راست کلیک کرده و کلیک
137
00:06:47,280 –> 00:06:48,800
کنید،
138
00:06:48,800 –> 00:06:52,080
من از google chrome استفاده می کنم،
139
00:06:53,840 –> 00:06:55,840
بنابراین خواهید دید که این مقاله
140
00:06:55,840 –> 00:06:58,880
به علاوه محصول زیر خط غلاف
141
00:06:58,880 –> 00:07:02,720
بنابراین هر محصول
142
00:07:02,720 –> 00:07:06,000
در این کلاس مقاله قرار می گیرد
143
00:07:06,160 –> 00:07:08,400
و اگر آن را گسترش دهیم، محفظه تصویر وجود دارد،
144
00:07:08,400 –> 00:07:09,919
سپس
145
00:07:09,919 –> 00:07:14,240
رتبه بندی ستاره و سپس در برگه h3
146
00:07:14,240 –> 00:07:18,400
این پیوند است
147
00:07:18,400 –> 00:07:22,560
و می توانید ببینید که یک
148
00:07:22,639 –> 00:07:25,840
لینک در اینجا وجود دارد، بنابراین کاری که می توانید انجام دهید این است که ما
149
00:07:25,840 –> 00:07:26,400
می توانید
150
00:07:26,400 –> 00:07:29,440
تمام کلاس مقاله ای را که
151
00:07:29,440 –> 00:07:32,240
دارای pod underscore محصول است دریافت کنید و در داخل
152
00:07:32,240 –> 00:07:33,840
آن ما فقط اولین
153
00:07:33,840 –> 00:07:37,759
h3 را می گیریم و سپس از اینجا هایپرلینک دریافت می کنیم ،
154
00:07:37,759 –> 00:07:39,680
بنابراین بیایید سعی کنیم این عبارت منظم را
155
00:07:39,680 –> 00:07:42,240
156
00:07:43,759 –> 00:07:45,280
بنویسیم یا شاید باید تابعی
157
00:07:45,280 –> 00:07:48,080
به نام div
158
00:07:48,400 –> 00:07:52,879
extract links
159
00:07:56,840 –> 00:07:58,560
from
160
00:07:58,560 –> 00:08:02,319
I’ll extract پیوندهای محصولی
161
00:08:03,520 –> 00:08:07,039
که میتوانند محتوا را دریافت کنند
162
00:08:10,800 –> 00:08:15,120
و اکنون URL محصول
163
00:08:15,120 –> 00:08:17,599
164
00:08:18,319 –> 00:08:23,759
باید به صورت array.compile باشد.
165
00:08:24,639 –> 00:08:28,960
166
00:08:28,960 –> 00:08:33,840
167
00:08:38,839 –> 00:08:41,839
168
00:08:43,679 –> 00:08:46,880
169
00:08:46,880 –> 00:08:50,320
170
00:08:51,120 –> 00:08:56,399
171
00:08:56,640 –> 00:09:00,720
ما به آن علاقه مندیم
172
00:09:02,640 –> 00:09:05,040
بنابراین هر چیزی که بین این
173
00:09:05,040 –> 00:09:06,480
نقل قول های دوگانه باشد
174
00:09:06,480 –> 00:09:09,279
و سپس سعی می کنیم
175
00:09:09,279 –> 00:09:10,240
عبارت is
176
00:09:10,240 –> 00:09:12,880
results را اجرا
177
00:09:16,720 –> 00:09:19,680
کنیم ابتدا الگو و محتوا را بنویسیم
178
00:09:19,680 –> 00:09:23,040
179
00:09:23,040 –> 00:09:28,320
و بیایید نتایج را برگردانیم
180
00:09:29,680 –> 00:09:37,839
. نتیجه می شود
181
00:09:43,760 –> 00:09:46,720
و اکنون پیوندها را چاپ می
182
00:09:48,839 –> 00:09:51,839
183
00:09:55,600 –> 00:09:58,160
کنیم بله می توانید ببینید که در کاتالوگ
184
00:09:58,160 –> 00:09:59,760
نوشته
185
00:09:59,760 –> 00:10:05,760
زیر شیروانی و زیرخط 1000.index.html است
186
00:10:05,760 –> 00:10:09,279
و نمی توانید متوجه شوید که آدرس کامل نیست،
187
00:10:09,279 –> 00:10:10,720
188
00:10:10,720 –> 00:10:14,480
بنابراین اگر دوباره به این وب سایت برویم
189
00:10:14,480 –> 00:10:18,079
و کلیک کنیم شما یکی از آنها را می شناسید. پیوندها
190
00:10:18,079 –> 00:10:22,240
پس این این قسمت است،
191
00:10:25,120 –> 00:10:28,560
بنابراین کاری که ما باید انجام دهیم این است که
192
00:10:29,600 –> 00:10:32,560
این کتابها را
193
00:10:32,560 –> 00:10:34,320
در ابتدا قرار دهیم books.twoscrape.com
194
00:10:34,320 –> 00:10:37,440
که باید بسیار آسان باشد و
195
00:10:37,440 –> 00:10:40,720
سپس می توانیم همه پیوندها را دریافت
196
00:10:40,720 –> 00:10:47,839
کنیم بیایید انجام دهیم
197
00:11:08,000 –> 00:11:10,560
که شروع می شود بله با شروع نمی شود
198
00:11:10,560 –> 00:11:11,040
اسلش،
199
00:11:11,040 –> 00:11:15,839
بنابراین
200
00:11:29,279 –> 00:11:32,480
اگر برنامه را دوباره اجرا کنم خوب است، می توانید
201
00:11:32,480 –> 00:11:32,880
ببینید
202
00:11:32,880 –> 00:11:36,720
که ما آدرس کامل کتاب را داریم
203
00:11:36,720 –> 00:11:40,720
که عالی است و یک کار دیگر
204
00:11:40,720 –> 00:11:42,000
داریم که باید به
205
00:11:42,000 –> 00:11:45,519
صفحه بعدی مراجعه کنید،
206
00:11:48,640 –> 00:11:52,880
بنابراین این صفحه کاتالوگ دوم است، بنابراین اگر شما
207
00:11:52,880 –> 00:11:56,399
روی بعدی کلیک کنید سپس صفحه بعدی کاتالوگ
208
00:11:56,399 –> 00:11:58,160
صفحه 3 است
209
00:11:58,160 –> 00:12:01,920
که می توانید اینجا ببینید و
210
00:12:01,920 –> 00:12:04,079
در مجموع چند صفحه وجود دارد اگر
211
00:12:04,079 –> 00:12:06,160
1000 نتیجه و
212
00:12:06,160 –> 00:12:10,399
هر کدام 20 صفحه وجود دارد، باید
213
00:12:10,399 –> 00:12:13,279
صفحه 20 را
214
00:12:15,440 –> 00:12:19,680
داشته باشید، متأسفانه باید صفحه 50 داشته باشید.
215
00:12:21,120 –> 00:12:24,160
بله آخرین صفحه شما هیچ پیوند بعدی را نمی بینید،
216
00:12:24,160 –> 00:12:26,240
پیوند قبلی وجود دارد
217
00:12:26,240 –> 00:12:29,279
o ما فقط می توانیم یک حلقه ساده بنویسیم که
218
00:12:29,279 –> 00:12:30,079
219
00:12:30,079 –> 00:12:32,399
از طریق هر صفحه نگاه می کند، بنابراین من این پیوند را دریافت می کنم،
220
00:12:32,399 –> 00:12:34,720
221
00:12:37,279 –> 00:12:41,200
سپس div پیوند تمام محصول را دریافت می کنم
222
00:12:41,200 –> 00:12:44,880
223
00:12:50,839 –> 00:12:53,839
224
00:13:05,279 –> 00:13:09,760
و کاری که انجام می دهد برای صفحه در محدوده
225
00:13:09,760 –> 00:13:13,120
1 251 است،
226
00:13:13,760 –> 00:13:21,839
ما در واقع آدرس URL را اینجا می سازیم
227
00:13:32,160 –> 00:13:35,839
و اجازه دهید فقط چاپ کنیم url
228
00:13:41,519 –> 00:13:45,839
و حالا اگر من فقط به این زنگ
229
00:13:46,720 –> 00:13:49,839
بزنم تمام پیوندهای محصول
230
00:14:00,800 –> 00:14:04,560
را دریافت کنید تا بتوانید تمام صفحات را اینجا دریافت کنید
231
00:14:04,560 –> 00:14:07,760
که خوب است و سپس
232
00:14:07,760 –> 00:14:10,880
در داخل اینجا
233
00:14:10,880 –> 00:14:13,279
می
234
00:14:15,440 –> 00:14:21,120
توانید پیوندها را استخراج کنید پیوندهای محصول را انجام دهید
235
00:14:24,000 –> 00:14:27,199
من باید محتوا را منتقل کنم
236
00:14:27,199 –> 00:14:30,720
و برای دریافت محتوا باید تماس بگیرید
237
00:14:30,720 –> 00:14:34,240
تابع getpagecontent
238
00:14:42,399 –> 00:14:45,120
بنابراین در اینجا من پیوند یک
239
00:14:45,120 –> 00:14:46,240
صفحه را دریافت می
240
00:14:46,240 –> 00:14:50,000
کنم باید 20 پیوند وجود داشته باشد و اکنون
241
00:14:50,000 –> 00:14:54,399
برای هر پیوند برای پیوند در
242
00:14:56,839 –> 00:14:59,839
پیوندها
243
00:15:02,160 –> 00:15:05,279
می توانیم یک تابع را برای
244
00:15:05,279 –> 00:15:10,399
دریافت داده ها فراخوانی کنیم یا کاری که می توانید انجام دهید این
245
00:15:10,839 –> 00:15:12,240
است
246
00:15:12,240 –> 00:15:27,839
که همه پیوندها را دریافت کنید
247
00:15:32,160 –> 00:15:36,399
و ما میتوانیم همه نشانیهای اینترنتی محصولات را از اینجا برگردانیم
248
00:15:36,399 –> 00:15:37,360
249
00:15:37,360 –> 00:15:40,560
و سپس میتوانیم روی همه نشانیهای اینترنتی محصولات حلقه بزنیم
250
00:15:40,560 –> 00:15:41,839
251
00:15:41,839 –> 00:15:55,839
تا جزئیات صفحه را دریافت
252
00:16:00,560 –> 00:16