در این مطلب، ویدئو خراش دادن وب با AIOHTTP و Python با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:13:43
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,240 –> 00:00:01,680
در این ویدیو ما قصد داریم
2
00:00:01,680 –> 00:00:04,799
به aio http نگاهی بیندازیم، این یک
3
00:00:04,799 –> 00:00:06,960
کتابخانه پایتون در سمت سرویس گیرنده و سرور است که به ما امکان میدهد
4
00:00:06,960 –> 00:00:07,919
5
00:00:07,919 –> 00:00:10,160
درخواستهای ناهمزمان ایجاد کنیم، این به
6
00:00:10,160 –> 00:00:12,160
ویژه برای ما هنگام اسکراپی کردن وب مفید و مهم است،
7
00:00:12,160 –> 00:00:13,360
8
00:00:13,360 –> 00:00:14,960
زیرا به این معنی است که ما اساساً میتوانیم
9
00:00:14,960 –> 00:00:17,039
دادهها را از چندین صفحه وب
10
00:00:17,039 –> 00:00:18,160
11
00:00:18,160 –> 00:00:20,160
به طور همزمان در اسکراپرهای وب همزمان به طور کلی دریافت
12
00:00:20,160 –> 00:00:21,840
کنیم، مانند زمانی که از درخواست و
13
00:00:21,840 –> 00:00:23,119
کتابخانههای لباس زیبا با هم استفاده
14
00:00:23,119 –> 00:00:24,720
میکنیم، باید منتظر
15
00:00:24,720 –> 00:00:26,960
پاسخ سرور باشیم تا بتوانیم آن دادهها را منتقل کنیم.
16
00:00:26,960 –> 00:00:29,439
زمان باقی مانده
17
00:00:29,439 –> 00:00:31,359
در کد ما جایی که آنها آنجا نشسته اند
18
00:00:31,359 –> 00:00:32,079
و هیچ کاری انجام نمی دهند و
19
00:00:32,079 –> 00:00:34,000
منتظر پاسخ از یک سرور خارجی هستند،
20
00:00:34,000 –> 00:00:36,440
وقتی این درخواست ها را به
21
00:00:36,440 –> 00:00:38,440
صورت ناهمزمان با چیزی مانند
22
00:00:38,440 –> 00:00:39,760
aiohtp ایجاد
23
00:00:39,760 –> 00:00:41,600
می کنیم، می توانیم سرعت آن را تا حد زیادی افزایش
24
00:00:41,600 –> 00:00:42,960
دهیم
25
00:00:42,960 –> 00:00:45,280
، همچنین امروزه در پایتون بسیار رایج است
26
00:00:45,280 –> 00:00:46,559
. در برنامه های وب
27
00:00:46,559 –> 00:00:48,160
و بنابراین قطعاً ارزش تلاش برای
28
00:00:48,160 –> 00:00:49,600
یادگیری و بررسی نحوه عملکرد آن
29
00:00:49,600 –> 00:00:51,760
را دارد و ai http مکان خوبی برای
30
00:00:51,760 –> 00:00:52,480
شروع است،
31
00:00:52,480 –> 00:00:54,000
بنابراین بیایید به این کامپوزیت بپردازیم. uter و
32
00:00:54,000 –> 00:00:55,760
ما شروع به بررسی نحوه
33
00:00:55,760 –> 00:00:57,280
ایجاد یک درخواست ساده
34
00:00:57,280 –> 00:01:00,320
میکنیم که چگونه میتوانید چندین آدرس اینترنتی درخواست کنید
35
00:01:00,320 –> 00:01:01,840
و من سعی میکنم تمام تلاشم را بکنم تا توضیح دهم
36
00:01:01,840 –> 00:01:03,600
که همه چیز چگونه پیش میرود،
37
00:01:03,600 –> 00:01:05,119
بنابراین اگر از این ویدیو لذت میبرید، بچهها اگر
38
00:01:05,119 –> 00:01:06,640
دریافت کردید هر چیزی که از آن خارج است، لطفاً
39
00:01:06,640 –> 00:01:08,560
من را لایک کنید و همچنین اشتراک را در نظر بگیرید،
40
00:01:08,560 –> 00:01:08,960
41
00:01:08,960 –> 00:01:11,520
بیایید شروع کنیم، بنابراین اگر قبلاً این کار را انجام نداده
42
00:01:11,520 –> 00:01:12,000
43
00:01:12,000 –> 00:01:15,040
اید، باید ai http را pip نصب کنید
44
00:01:15,040 –> 00:01:16,000
و سپس کاری که من می خواهم انجام دهم این است که من
45
00:01:16,000 –> 00:01:17,040
فقط می روم به
46
00:01:17,040 –> 00:01:18,799
مستندات اینجا و به ما میگوید
47
00:01:18,799 –> 00:01:20,320
چگونه میتوانیم سریع شروع کنیم و چگونه میتوانیم
48
00:01:20,320 –> 00:01:21,759
واقعاً
49
00:01:21,759 –> 00:01:23,680
درخواست بدهیم، میدانم که این به نظر کمی
50
00:01:23,680 –> 00:01:25,600
پیچیدهتر از درخواستهای
51
00:01:25,600 –> 00:01:26,240
ساده
52
00:01:26,240 –> 00:01:29,360
r برابر با request.get است، اما ما در حال
53
00:01:29,360 –> 00:01:31,119
انجام کمی هستیم. چیزهای بیشتری در اینجا وجود دارد
54
00:01:31,119 –> 00:01:32,560
و اگر واقعاً به این موضوع علاقه
55
00:01:32,560 –> 00:01:34,079
دارید اگر به این صفحه بروید
56
00:01:34,079 –> 00:01:36,159
که در زیر پیوند خواهم داد و به چرخه حیات درخواست ao aio http بیایید،
57
00:01:36,159 –> 00:01:37,920
58
00:01:37,920 –> 00:01:40,400
کمی بیشتر
59
00:01:40,400 –> 00:01:42,320
در مورد اینکه چرا چیزهای بیشتری در آن وجود دارد
60
00:01:42,320 –> 00:01:44,640
و چگونه توضیح می دهد. ایجاد آن
61
00:01:44,640 –> 00:01:46,079
در برابر آن متفاوت است
62
00:01:46,079 –> 00:01:48,720
خود کتابخانه درخواستهای واقعی،
63
00:01:48,720 –> 00:01:49,920
بنابراین اگر میخواهید
64
00:01:49,920 –> 00:01:51,520
اطلاعات بیشتری را در اینجا پیدا کنید، جالب است، اما کاری که
65
00:01:51,520 –> 00:01:52,240
ما میخواهیم انجام دهیم این
66
00:01:52,240 –> 00:01:54,000
است که ابتدا این کد را کپی
67
00:01:54,000 –> 00:01:55,280
میکنیم و این را
68
00:01:55,280 –> 00:01:57,680
اجرا میکنیم و میبینیم آنچه را که ما بیرون می آوریم
69
00:01:57,680 –> 00:01:59,520
و سپس به شما نشان خواهم داد که چگونه
70
00:01:59,520 –> 00:02:01,280
از آن در یک
71
00:02:01,280 –> 00:02:02,719
نوع وب scraper عملی استفاده کنید، بنابراین من
72
00:02:02,719 –> 00:02:03,680
73
00:02:03,680 –> 00:02:07,360
یک i o http را وارد می کنم و همچنین async io را
74
00:02:07,360 –> 00:02:09,360
که کتابخانه ناهمزمان پایتون است وارد
75
00:02:09,360 –> 00:02:10,479
می کنم.
76
00:02:10,479 –> 00:02:11,680
باید ادامه دهم و این
77
00:02:11,680 –> 00:02:14,239
کد را اینجا بچسبانم که اساساً می
78
00:02:14,239 –> 00:02:16,000
گوید ما باید
79
00:02:16,000 –> 00:02:18,239
یک روال مشترک ایجاد کنیم و اینها مانند
80
00:02:18,239 –> 00:02:20,319
توابع قابل انتظار هستند که توابعی هستند که
81
00:02:20,319 –> 00:02:21,040
می نویسیم
82
00:02:21,040 –> 00:02:22,720
ناهمزمان هستند بنابراین این یکی است از
83
00:02:22,720 –> 00:02:24,319
آنها در اینجا، بنابراین ما
84
00:02:24,319 –> 00:02:26,640
تعریف می کنیم که با گفتن ما همان
85
00:02:26,640 –> 00:02:27,680
تعریف خود را داریم اما
86
00:02:27,680 –> 00:02:29,280
در مقابل آن async داریم و می بینید
87
00:02:29,280 –> 00:02:30,879
که ما در مقابل این
88
00:02:30,879 –> 00:02:33,680
موارد دیگر هم async داریم و سپس در پایان منتظر می مانیم
89
00:02:33,680 –> 00:02:34,560
90
00:02:34,560 –> 00:02:36,959
پس این خط دوم چیست. در اینجا این
91
00:02:36,959 –> 00:02:38,560
خط اول فقط تابع t ما را تعریف می کند
92
00:02:38,560 –> 00:02:39,519
خط دوم
93
00:02:39,519 –> 00:02:42,720
اساساً با Aiohtp Client Session است،
94
00:02:42,720 –> 00:02:45,280
اکنون این یک مدیریت زمینه است، بنابراین کاری که
95
00:02:45,280 –> 00:02:46,879
ما در اینجا انجام می دهیم مانند زمانی است که شما
96
00:02:46,879 –> 00:02:47,840
یک فایل را باز می کنید
97
00:02:47,840 –> 00:02:50,000
یا در کد خود ممکن
98
00:02:50,000 –> 00:02:52,160
است یک فایل csv را باز کنید که از آن استفاده می کنید
99
00:02:52,160 –> 00:02:53,599
. مدیر زمینه،
100
00:02:53,599 –> 00:02:55,920
بنابراین ما در اینجا از آن استفاده می کنیم و جلسه مشتری
101
00:02:55,920 –> 00:02:57,920
اساساً یک شی جلسه است،
102
00:02:57,920 –> 00:02:59,360
من قبلاً یک ویدیو در مورد اشیاء جلسه دارم،
103
00:02:59,360 –> 00:03:00,560
اگر
104
00:03:00,560 –> 00:03:02,480
اطلاعات زیادی در مورد آنها ندارید، آن را
105
00:03:02,480 –> 00:03:04,080
در جایی قرار می دهم که بتوانید آن را پیدا کنید. بنابراین چیزی که
106
00:03:04,080 –> 00:03:04,879
ما می گوییم این است
107
00:03:04,879 –> 00:03:06,720
که از جلسه برای
108
00:03:06,720 –> 00:03:08,959
دریافت داده ها از این وب سایت استفاده می
109
00:03:08,959 –> 00:03:11,280
کنیم، ما آن را در resp ذخیره می کنیم، من
110
00:03:11,280 –> 00:03:13,200
معمولاً از r استفاده می کنم، اما این
111
00:03:13,200 –> 00:03:15,200
مثال ما است، این کد وضعیت و
112
00:03:15,200 –> 00:03:17,040
سپس متن است. از پاسخ
113
00:03:17,040 –> 00:03:18,560
در حال حاضر، چیز بعدی که مهم است
114
00:03:18,560 –> 00:03:20,400
این است که در اینجا حلقه است،
115
00:03:20,400 –> 00:03:23,040
بنابراین ما حلقه رویداد را ایجاد می کنیم.
116
00:03:23,040 –> 00:03:25,120
117
00:03:25,120 –> 00:03:26,319
118
00:03:26,319 –> 00:03:28,640
119
00:03:28,640 –> 00:03:30,159
حلقه را ارجاع دهید
120
00:03:30,159 –> 00:03:32,319
اما آنها آن را در آزمون خود رها کرده اند
121
00:03:32,319 –> 00:03:33,440
بنابراین من آن را در اینجا می گذارم و
122
00:03:33,440 –> 00:03:35,599
اکنون این کد را اجرا می کنیم،
123
00:03:35,599 –> 00:03:36,720
بنابراین چه کاری انجام می دهد، من می خواهم
124
00:03:36,720 –> 00:03:38,400
یک درخواست به این سرور ارسال کنم
125
00:03:38,400 –> 00:03:40,799
و می توانید ببینید که ما
126
00:03:40,799 –> 00:03:41,519
اطلاعاتی در اختیار داریم.
127
00:03:41,519 –> 00:03:44,000
در اینجا پاسخ json است که
128
00:03:44,000 –> 00:03:44,959
خوب است،
129
00:03:44,959 –> 00:03:47,120
بنابراین اکنون که به نوعی می بینیم که می تواند
130
00:03:47,120 –> 00:03:48,319
کار کند، کاری که من می خواهم انجام دهم این است که
131
00:03:48,319 –> 00:03:50,080
این کد را از اینجا حذف می کنم و
132
00:03:50,080 –> 00:03:51,840
چیزی ایجاد می کنیم که کمی
133
00:03:51,840 –> 00:03:52,319
134
00:03:52,319 –> 00:03:55,200
بیشتر به نظر برسد. مانند چیزی که ما انتظار داریم، بنابراین
135
00:03:55,200 –> 00:03:56,720
دوباره میخواهم تعریف async را انجام دهم
136
00:03:56,720 –> 00:03:58,959
و این صفحه دریافت را صدا میزنم
137
00:03:58,959 –> 00:04:00,239
و میخواهیم بگوییم که
138
00:04:00,239 –> 00:04:03,599
به جلسه و یک آدرس اینترنتی نیاز داریم، بنابراین اساساً همان چیزی است
139
00:04:03,599 –> 00:04:04,799
که به آن نیاز داریم. آیا ما
140
00:04:04,799 –> 00:04:05,599
به سه
141
00:04:05,599 –> 00:04:08,400
تابع async اصلی نیاز داریم، اولی تابعی
142
00:04:08,400 –> 00:04:09,840
است که از
143
00:04:09,840 –> 00:04:12,799
آن فقط برای برداشتن داده ها از صفحه استفاده می کنیم،
144
00:04:12,799 –> 00:04:14,319
دومی که در
145
00:04:14,319 –> 00:04:16,079
آن همه کارها را کنار هم قرار می دهیم
146
00:04:16,079 –> 00:04:17,600
و سپس سومین
147
00:04:17,600 –> 00:04:19,040
تابع اصلی است که
148
00:04:19,040 –> 00:04:20,399
همه چیز را کنترل می کند و اساساً تابعی است که
149
00:04:20,399 –> 00:04:21,918
ما همه آدرس ها را به
150
00:04:21,918 –> 00:04:23,199
آن می دهیم، بنابراین این همان تابعی است که
151
00:04:23,199 –> 00:04:24,560
فقط دادهها را از صفحه خارج میکند، بنابراین
152
00:04:24,560 –> 00:04:24,960
153
00:04:24,960 –> 00:04:27,520
بسیار شبیه به چیزی است که من حذف کردم،
154
00:04:27,520 –> 00:04:29,280
بنابراین میخواهم با
155
00:04:29,280 –> 00:04:33,919
پوزش async with
156
00:04:33,919 –> 00:04:36,000
session بگویم که همان چیزی است که
157
00:04:36,000 –> 00:04:37,520
به آن میدهیم
158
00:04:37,520 –> 00:04:40,560
، نشانی اینترنتی را دریافت کنید و ما به
159
00:04:40,560 –> 00:04:44,240
عنوان r می گوییم و می خواهیم برگردیم
160
00:04:44,240 –> 00:04:47,040
و اینجا کلمه کلیدی انتظار ما است، اوه،
161
00:04:47,040 –> 00:04:48,320
این برای روال کد ما است
162
00:04:48,320 –> 00:04:50,080
و ما فقط می خواهیم متن خود را برگردانیم
163
00:04:50,080 –> 00:04:51,600
زیرا می خواهیم متن
164
00:04:51,600 –> 00:04:54,479
html از این متن خارج شود. صفحه بنابراین در
165
00:04:54,479 –> 00:04:56,000
اصل فقط ایجاد
166
00:04:56,000 –> 00:04:58,960
یک درخواست ساده برای داده های آن صفحه است
167
00:04:58,960 –> 00:05:00,160
و کار بعدی که می
168
00:05:00,160 –> 00:05:01,680
خواهیم انجام دهیم این است که یک تابع دیگر ایجاد
169
00:05:01,680 –> 00:05:03,360
می کنیم و دوباره async def را انجام می دهیم
170
00:05:03,360 –> 00:05:05,280
زیرا این نیز ناهمزمان است
171
00:05:05,280 –> 00:05:07,199
و ما می خواهم این یکی را صدا کنم، من
172
00:05:07,199 –> 00:05:08,720
فقط آن را
173
00:05:08,720 –> 00:05:10,400
تمام می کنم. من با
174
00:05:10,400 –> 00:05:11,840
یادداشت های عملکردم خیلی خوب نیستم، مطمئن شوید که عملکرد خود را نیز نام می برید
175
00:05:11,840 –> 00:05:12,720
176
00:05:12,720 –> 00:05:13,840
و می دانید چه می گویید، می دانید
177
00:05:13,840 –> 00:05:15,600
دارید چه می کنید و دوباره ما داریم انجام می دهیم
178
00:05:15,600 –> 00:05:16,240
به آن
179
00:05:16,240 –> 00:05:18,479
جلسه می دهیم و همچنین می خواهیم لیست
180
00:05:18,479 –> 00:05:19,440
آدرس های اینترنتی خود را به آن بدهیم
181
00:05:19,440 –> 00:05:21,039
این همان چیزی است که در حال انجام است g برای
182
00:05:21,039 –> 00:05:22,880
ایجاد وظایف
183
00:05:22,880 –> 00:05:25,039
برای همه چیز برای همه روالهای
184
00:05:25,039 –> 00:05:26,400
مشترک که وارد حلقه شوند
185
00:05:26,400 –> 00:05:28,320
و همه آن دادهها را برگردانیم، بنابراین
186
00:05:28,320 –> 00:05:29,759
ما آدرسهای اینترنتی را میگوییم زیرا
187
00:05:29,759 –> 00:05:32,000
میخواهیم فهرست آدرسهای اینترنتی ایجاد کنیم
188
00:05:32,000 –> 00:05:33,440
و سپس در زیر اینجا قرار میدهیم. اینکه بگوییم
189
00:05:33,440 –> 00:05:36,560
در اینجا وظایف ما هستند که می خواهیم
190
00:05:36,560 –> 00:05:38,240
برگردانیم، بنابراین می خواهیم لیستی از وظایف ایجاد کنیم
191
00:05:38,240 –> 00:05:40,000
و سپس می توانیم
192
00:05:40,000 –> 00:05:43,600
چهار URL در URL ها انجام دهیم، بنابراین اکنون می خواهیم
193
00:05:43,600 –> 00:05:47,039
وظیفه را انجام دهیم برابر است با async
194
00:05:47,039 –> 00:05:50,720
io dot ایجاد
195
00:05:50,720 –> 00:05:53,759
وظیفه اکنون وظیفه ای را که می خواهیم انجام دهیم.
196
00:05:53,759 –> 00:05:55,759
ایجاد این یکی است این وظیفه ای است که می خواهیم
197
00:05:55,759 –> 00:05:57,039
ایجاد کنیم، می خواهیم
198
00:05:57,039 –> 00:05:59,840
برای هر url در لیست url های خود یک کار ایجاد
199
00:05:59,840 –> 00:06:01,520
کنیم که هنوز باید ایجاد کنیم
200
00:06:01,520 –> 00:06:03,759
تا برویم و داده های صفحه را از آنجا دریافت کنیم،
201
00:06:03,759 –> 00:06:05,039
بنابراین کاری که می خواهیم انجام دهیم این است که ما
202
00:06:05,039 –> 00:06:06,080
203
00:06:06,080 –> 00:06:08,479
میخواهیم این تابع را در اینجا در این
204
00:06:08,479 –> 00:06:09,840
یکی ارجاع دهیم تا بتوانیم بگوییم میخواهیم
205
00:06:09,840 –> 00:06:10,720
صفحه را
206
00:06:10,720 –> 00:06:14,880
با جلسه و آدرس اینترنتی دریافت کنیم
207
00:06:14,880 –> 00:06:20,000
و سپس میتوانیم نقطه کار را اضافه
208
00:06:20,000 –> 00:06:23,520
کنیم، بنابراین لیستی از وظایف وظایف و