در این مطلب، ویدئو Scrapy for Beginners – نحوه کامل پروژه اسکراپینگ وب با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:23:21
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,240 –> 00:00:01,520
در این ویدیو
2
00:00:01,520 –> 00:00:03,439
ما قصد داریم پروژه اسکرپی دیگری را انجام دهیم که
3
00:00:03,439 –> 00:00:05,440
تمام محتویات
4
00:00:05,440 –> 00:00:07,359
مجموعه خاصی از محصولات را در یک
5
00:00:07,359 –> 00:00:09,280
فروشگاه خراش می دهیم و آن را دانلود می کنیم و ذخیره آن در
6
00:00:09,280 –> 00:00:10,800
7
00:00:10,800 –> 00:00:13,360
فایل jason یا csv scrapy چارچوب پایتون است.
8
00:00:13,360 –> 00:00:14,639
خراش دادن وب واقعا عالی است،
9
00:00:14,639 –> 00:00:15,599
واقعاً قدرتمند است
10
00:00:15,599 –> 00:00:17,920
و این یک سایت html است، بنابراین بیایید
11
00:00:17,920 –> 00:00:19,439
شروع کنیم اولین کاری که می خواهیم انجام دهیم این است
12
00:00:19,439 –> 00:00:21,600
که یک پوشه برای پروژه خود ایجاد کنیم، من یک پوشه در
13
00:00:21,600 –> 00:00:22,480
اینجا
14
00:00:22,480 –> 00:00:24,800
دارم، من از ترمینال ویندوز با
15
00:00:24,800 –> 00:00:26,560
زیرسیستم برای لینوکس استفاده می کنم.
16
00:00:26,560 –> 00:00:28,400
این روی پاورشل یا
17
00:00:28,400 –> 00:00:30,080
هر چیز دیگری که من به شدت توصیه میکنم کار میکند،
18
00:00:30,080 –> 00:00:31,519
اما اگر قبلاً آن
19
00:00:31,519 –> 00:00:33,520
را یاد نگرفتهاید، wsl را دریافت میکنید و یاد میگیرید که
20
00:00:33,520 –> 00:00:33,920
21
00:00:33,920 –> 00:00:35,280
از کمی لینوکس استفاده کنید و
22
00:00:35,280 –> 00:00:37,600
زندگی خود را آسانتر کنید، بنابراین اولین کاری که میخواهیم انجام دهیم.
23
00:00:37,600 –> 00:00:39,040
آیا ما همیشه میخواهیم از یک
24
00:00:39,040 –> 00:00:41,120
محیط مجازی برای پروژههای خراب یا هر
25
00:00:41,120 –> 00:00:42,320
پروژهای مانند این استفاده کنیم،
26
00:00:42,320 –> 00:00:45,680
بنابراین من میخواهم پایتون 3 dash m v nv
27
00:00:45,680 –> 00:00:48,399
v e m v را انجام دهم، این به شما بستگی دارد که چگونه میخواهید
28
00:00:48,399 –> 00:00:48,879
29
00:00:48,879 –> 00:00:52,000
محیطهای مجازی خود
30
00:00:52,000 –> 00:00:54,000
را ایجاد کنید. مثل این راه پس
31
00:00:54,000 –> 00:00:55,600
وقتی این کار انجام شد، میتوانیم ادامه دهیم
32
00:00:55,600 –> 00:00:57,039
و پیپ نصب scrapy
33
00:00:57,039 –> 00:00:58,960
را انجام دهیم، بنابراین این کار اکنون انجام میشود، میتوانیم آن را
34
00:00:58,960 –> 00:01:00,879
با source
35
00:01:00,879 –> 00:01:04,000
v env bin
36
00:01:04,000 –> 00:01:05,840
فعال کنیم و این را فعال کنیم در ویندوز کمی متفاوت است،
37
00:01:05,840 –> 00:01:07,360
اما دوباره
38
00:01:07,360 –> 00:01:09,280
محیط مجازی را به شما واگذار میکنم.
39
00:01:09,280 –> 00:01:10,560
بنابراین اکنون کاری که میخواهیم انجام دهیم این است که اکنون که
40
00:01:10,560 –> 00:01:12,479
در محیط مجازی خود هستیم،
41
00:01:12,479 –> 00:01:13,280
میخواهیم به صورت پیپ
42
00:01:13,280 –> 00:01:16,240
نصب کنیم، من از pip3 استفاده میکنم، این
43
00:01:16,240 –> 00:01:18,000
فقط میتواند برای شما پیپ باشد،
44
00:01:18,000 –> 00:01:19,040
اوه، ما این کار را
45
00:01:19,040 –> 00:01:20,799
انجام میدهیم و اجازه میدهیم این نصب را انجام دهید و سپس من به
46
00:01:20,799 –> 00:01:22,240
شما نشان می دهم که کجا هستیم،
47
00:01:22,240 –> 00:01:24,479
بنابراین اکنون که scrapey آن را نصب کرده است،
48
00:01:24,479 –> 00:01:25,759
می توانیم ادامه دهیم و پروژه خود را ایجاد کنیم
49
00:01:25,759 –> 00:01:28,479
تا این کار را انجام دهیم که می خواهیم
50
00:01:28,479 –> 00:01:31,119
scrapey را تایپ کرده و پروژه را شروع کنیم
51
00:01:31,119 –> 00:01:32,560
و سپس نام پروژه خود را i’ من
52
00:01:32,560 –> 00:01:35,040
فقط این یک
53
00:01:35,040 –> 00:01:37,600
ویسکی خراش
54
00:01:37,600 –> 00:01:39,119
را به این شکل صدا می زنم کاری که قرار است انجام دهد این است که
55
00:01:39,119 –> 00:01:40,960
همه فایل های پروژه را برای ما تنظیم می کند،
56
00:01:40,960 –> 00:01:43,200
همه
57
00:01:43,200 –> 00:01:46,720
فایل های پیکربندی و غیره را ایجاد می کند، بنابراین
58
00:01:46,720 –> 00:01:48,530
اگر وارد um من
59
00:01:48,530 –> 00:01:49,920
[Music] شوم.
60
00:01:49,920 –> 00:01:53,119
اگر به قسمت my بروید، اگر اکنون
61
00:01:53,119 –> 00:01:55,200
به پوشه پروژه ای که ایجاد کردیم بروم
62
00:01:55,200 –> 00:01:56,159
63
00:01:56,159 –> 00:01:58,479
و درخت را تایپ کنید ما میتوانیم نحوه
64
00:01:58,479 –> 00:02:00,159
تنظیم پوشهها با
65
00:02:00,159 –> 00:02:01,040
همه فایلها
66
00:02:01,040 –> 00:02:03,040
را ببینیم، بنابراین اساساً ما
67
00:02:03,040 –> 00:02:04,479
پوشه پروژه خاص خود را در اینجا و همه چیزهای
68
00:02:04,479 –> 00:02:05,520
موجود در آن داریم و میتوانیم ببینیم که یک پوشه spiders وجود دارد
69
00:02:05,520 –> 00:02:06,719
70
00:02:06,719 –> 00:02:07,840
و این همان چیزی است که ما داریم.
71
00:02:07,840 –> 00:02:09,919
ما از یک عنکبوت برای
72
00:02:09,919 –> 00:02:11,360
خزیدن وبسایتها استفاده
73
00:02:11,360 –> 00:02:12,800
میکنیم، بنابراین کاری که میخواهیم انجام دهیم این است که میخواهیم
74
00:02:12,800 –> 00:02:14,319
نگاهی به وبسایت بیندازیم، این وبسایت
75
00:02:14,319 –> 00:02:16,400
اینجاست که ویسکی میفروشد و من در
76
00:02:16,400 –> 00:02:17,599
ویسکی اسکاچ هستم. بخش
77
00:02:17,599 –> 00:02:18,800
من در واقع فقط میخواهم به
78
00:02:18,800 –> 00:02:22,080
اینجا بیایم و اقلام مخفی خارج از انبار را علامت بزنم
79
00:02:22,080 –> 00:02:24,879
و فکر میکنم این 746
80
00:02:24,879 –> 00:02:26,239
نتیجه به ما میدهد، بنابراین کاری که ما با
81
00:02:26,239 –> 00:02:27,520
این خراش میخواهیم انجام دهیم این است
82
00:02:27,520 –> 00:02:28,000
83
00:02:28,000 –> 00:02:29,360
که هر کدام را مرور کنیم. صفحه و ما قصد
84
00:02:29,360 –> 00:02:32,720
داریم نام و
85
00:02:32,720 –> 00:02:34,879
قیمت و پیوند را دریافت کنیم، بنابراین من فقط می خواهم
86
00:02:34,879 –> 00:02:36,640
پیوند را در اینجا کپی کنم
87
00:02:36,640 –> 00:02:37,760
و کاری که اکنون می خواهیم انجام دهیم این است که
88
00:02:37,760 –> 00:02:39,519
اکنون از پوسته scrapy استفاده می کنیم.
89
00:02:39,519 –> 00:02:40,720
این به ما اجازه می
90
00:02:40,720 –> 00:02:42,239
دهد صفحه را دانلود کنیم و سپس آن را
91
00:02:42,239 –> 00:02:44,000
بازجویی کنیم تا بدانیم چه دستوراتی را
92
00:02:44,000 –> 00:02:46,000
می خواهیم برای ضایعات خود انجام دهیم اسکریپت y
93
00:02:46,000 –> 00:02:49,120
بنابراین فقط scrapy shell را تایپ
94
00:02:49,120 –> 00:02:52,080
کنید enter را بزنید تا بارگذاری شود و ما می توانیم از
95
00:02:52,080 –> 00:02:53,760
دستور fetch استفاده کنیم تا
96
00:02:53,760 –> 00:02:55,200
fetch را انجام دهیم و سپس
97
00:02:55,200 –> 00:02:56,319
آدرس اینترنتی خود را در اینجا قرار
98
00:02:56,319 –> 00:02:58,560
می دهیم که فقط کپی کرده ایم و اینتر را می زنیم و
99
00:02:58,560 –> 00:03:00,800
امیدوارم جایی در اینجا می توانیم ببینیم
100
00:03:00,800 –> 00:03:04,159
که می گوید crawled و ما یک پاسخ 200 دریافت می کنیم
101
00:03:04,159 –> 00:03:05,920
که به این معنی است
102
00:03:05,920 –> 00:03:07,040
که اگر پاسخ متفاوتی دریافت می کنید
103
00:03:07,040 –> 00:03:09,280
مانند 400 یا چیزی
104
00:03:09,280 –> 00:03:11,920
که وب سایت کار نمی کند، همه چیز جواب می دهد، بنابراین ادامه دهید
105
00:03:11,920 –> 00:03:13,120
و سعی کنید آن را در مرورگر خود بارگذاری کنید و
106
00:03:13,120 –> 00:03:14,560
فقط بررسی کنید که URL کار می کند و
107
00:03:14,560 –> 00:03:16,000
همه چیز درست است،
108
00:03:16,000 –> 00:03:17,760
بنابراین وقتی از پوسته scrapy استفاده می کنید،
109
00:03:17,760 –> 00:03:20,480
همه چیز در متغیر پاسخ ذخیره می شود،
110
00:03:20,480 –> 00:03:22,319
بنابراین اگر من ادامه دهم و
111
00:03:22,319 –> 00:03:23,680
پاسخ
112
00:03:23,680 –> 00:03:24,879
را تایپ کنم، ظاهر می شود و
113
00:03:24,879 –> 00:03:26,400
به ما می گوید که ما پاسخی به آن داریم.
114
00:03:26,400 –> 00:03:27,440
این صفحه
115
00:03:27,440 –> 00:03:29,680
اکنون می توانیم از xpath یا انتخابگرهای css
116
00:03:29,680 –> 00:03:30,640
برای
117
00:03:30,640 –> 00:03:32,239
دریافت اطلاعات از این صفحه
118
00:03:32,239 –> 00:03:34,080
استفاده کنیم، من از دومی استفاده می کنم، بنابراین
119
00:03:34,080 –> 00:03:35,519
به وب سایت برمی گردم و فقط
120
00:03:35,519 –> 00:03:36,319
121
00:03:36,319 –> 00:03:39,200
به عنصر بازرسی مورد علاقه خود می روم. ابزار
122
00:03:39,200 –> 00:03:41,760
بیایید این را بزرگ کنیم تا همه بتوانند ببینید
123
00:03:41,760 –> 00:03:44,319
آن را در آنجا بسازید
124
00:03:44,319 –> 00:03:45,920
و من از انتخابگر استفاده میکنم و فقط میخواهم به
125
00:03:45,920 –> 00:03:47,120
سرعت ماوس را
126
00:03:47,120 –> 00:03:49,840
روی کل قسمت
127
00:03:49,840 –> 00:03:51,200
محصول در آنجا نگه دارم، همه چیز
128
00:03:51,200 –> 00:03:52,239
آبی شده است
129
00:03:52,239 –> 00:03:53,840
و میتوانیم سمت چپ را ببینیم
130
00:03:53,840 –> 00:03:55,840
متأسفم در سمت راست صفحه
131
00:03:55,840 –> 00:03:57,760
که ما می توانیم همه اینها را کلاس لیست
132
00:03:57,760 –> 00:04:00,400
آیتم ببینیم، بنابراین این کد html
133
00:04:00,400 –> 00:04:01,840
است،
134
00:04:01,840 –> 00:04:03,280
کاری که می توانیم انجام دهیم این است که می خواهیم یک
135
00:04:03,280 –> 00:04:04,640
نگاه سریع به این داشته باشیم و ببینیم
136
00:04:04,640 –> 00:04:06,159
اطلاعات کجاست
137
00:04:06,159 –> 00:04:08,480
و می توانیم تصمیم بگیریم که آیا ما میخواهیم
138
00:04:08,480 –> 00:04:09,680
مستقیماً به
139
00:04:09,680 –> 00:04:11,760
آیتم فهرست اصلی برویم یا میخواهیم مورد
140
00:04:11,760 –> 00:04:13,760
زیر را دریافت کنیم که
141
00:04:13,760 –> 00:04:15,519
در این مورد ممکن است آسانتر باشد، من از این کالای مورد کلاس div استفاده میکنم
142
00:04:15,519 –> 00:04:17,440
143
00:04:17,440 –> 00:04:19,440
متأسفم این کلاس div اینجا اطلاعات مورد محصول
144
00:04:19,440 –> 00:04:20,639
145
00:04:20,639 –> 00:04:21,600
من هستم فقط میخواهم دوبار بررسی کنم
146
00:04:21,600 –> 00:04:23,199
که در محصول بعدی نیز وجود
147
00:04:23,199 –> 00:04:23,680
دارد،
148
00:04:23,680 –> 00:04:24,720
بنابراین به نظر میرسد که تمام
149
00:04:24,720 –> 00:04:26,880
اطلاعات آن محصول را در خود جای داده است،
150
00:04:26,880 –> 00:04:28,240
بنابراین من آن را کپی میکنم و کاری
151
00:04:28,240 –> 00:04:29,759
که میخواهم انجام دهم این است که بروم به
152
00:04:29,759 –> 00:04:30,560
153
00:04:30,560 –> 00:04:32,240
پوسته ما در اینجا برمی گردم و من می خواهم
154
00:04:32,240 –> 00:04:34,160
پاسخ
155
00:04:34,160 –> 00:04:37,680
نقطه css را تایپ کنم و سپس goi می کنم ng برای گفتن
156
00:04:37,680 –> 00:04:40,479
نقطه div و چسباندن کلاس و ضربه زدن به اینتر
157
00:04:40,479 –> 00:04:42,400
اکنون میتوانیم ببینیم که تمام این
158
00:04:42,400 –> 00:04:43,840
اطلاعات روی صفحه ظاهر شدهاند و
159
00:04:43,840 –> 00:04:45,600
دلیل آن این است که تمام عناصری را پیدا کرده است
160
00:04:45,600 –> 00:04:47,040
که با آن مطابقت دارند،
161
00:04:47,040 –> 00:04:48,720
بنابراین کاری که میتوانیم انجام دهیم این است که واقعاً میتوانیم نقطه انجام دهیم.
162
00:04:48,720 –> 00:04:50,080
get
163
00:04:50,080 –> 00:04:51,919
و dot get اساساً
164
00:04:51,919 –> 00:04:53,600
اولین پاسخ را به ما میدهند و همه را
165
00:04:53,600 –> 00:04:55,440
166
00:04:55,440 –> 00:04:57,759
دریافت میکنیم، لیستی را به ما برمیگرداند، اما برای نشان دادن این ابتدا از dot get استفاده
167
00:04:57,759 –> 00:05:00,080
میکنم و میتوانیم ببینیم که این
168
00:05:00,080 –> 00:05:02,320
کد html برای اولین
169
00:05:02,320 –> 00:05:05,039
مورد در آن بازگردانده شده است. لیست ما می توانیم ببینیم که ما
170
00:05:05,039 –> 00:05:05,759
171
00:05:05,759 –> 00:05:08,400
نام را در اینجا و تصاویر و
172
00:05:08,400 –> 00:05:10,160
غیره به دست آورده ایم، بنابراین این اطلاعاتی است که می
173
00:05:10,160 –> 00:05:11,520
خواهیم امتحان کنیم و از آن خارج کنیم، بنابراین می خواهیم
174
00:05:11,520 –> 00:05:13,039
اساساً آن را برجسته کنیم و
175
00:05:13,039 –> 00:05:14,639
فقط بیت هایی را که می خواهیم نام
176
00:05:14,639 –> 00:05:15,840
و غیره را دریافت کنیم. و قیمت و ما
177
00:05:15,840 –> 00:05:17,919
میتوانیم ببینیم که همان قیمت است،
178
00:05:17,919 –> 00:05:21,039
کاری که میتوانیم انجام دهیم این است که اساساً میتوانیم
179
00:05:21,039 –> 00:05:21,919
این
180
00:05:21,919 –> 00:05:24,880
آیتم پاسخ را در یک متغیر ذخیره کنیم و سپس
181
00:05:24,880 –> 00:05:26,160
آن را مانند حالت عادی حلقه بزنیم،
182
00:05:26,160 –> 00:05:27,919
بنابراین من این کار
183
00:05:27,919 –> 00:05:29,600
را انجام میدهم. ادامه دهید
184
00:05:29,600 –> 00:05:31,120
و من می خواهم به عقب برگردم و می خواهم
185
00:05:31,120 –> 00:05:32,960
حذف شوم دریافت
186
00:05:32,960 –> 00:05:36,080
و میخواهم بگویم محصولات ما
187
00:05:36,080 –> 00:05:38,960
با آن برابر است، بنابراین
188
00:05:38,960 –> 00:05:41,039
همه آنهایی که در آن لیست هستند برای ما حفظ میشوند،
189
00:05:41,039 –> 00:05:43,759
بنابراین اگر طول محصولات را انجام دهم،
190
00:05:43,759 –> 00:05:45,280
باید همان مقدار محصولی را که
191
00:05:45,280 –> 00:05:47,039
در صفحه است دریافت کنیم.
192
00:05:47,039 –> 00:05:48,160
بنابراین من میخواهم پیشنهاد کنم که
193
00:05:48,160 –> 00:05:50,320
احتمالاً 100 مورد در هر صفحه وجود دارد و
194
00:05:50,320 –> 00:05:52,560
دقیقاً میتوانید آن را در اینجا ببینید،
195
00:05:52,560 –> 00:05:53,919
بنابراین میتوانید ببینید که چگونه از
196
00:05:53,919 –> 00:05:55,680
پوسته scrapy برای
197
00:05:55,680 –> 00:05:57,919
بازجویی از html استفاده میکنیم، بنابراین این
198
00:05:57,919 –> 00:05:59,759
شبیه به پاس دادن آن است. بنابراین
199
00:05:59,759 –> 00:06:02,160
این شبیه به استفاده از
200
00:06:02,160 –> 00:06:04,720
سوپ زیبا برای جستجو در کد html است،
201
00:06:04,720 –> 00:06:06,639
بنابراین کاری که من می خواهم انجام دهم این است که
202
00:06:06,639 –> 00:06:09,280
به پوسته خود بازگردم
203
00:06:09,280 –> 00:06:10,720
و ما می خواهیم
204
00:06:10,720 –> 00:06:12,440
داخل محصول را بررسی کنیم.
205
00:06:12,440 –> 00:06:14,319
206
00:06:14,319 –> 00:06:17,520
برای جستجوی داخل آن، محصولات.css را انجام میدهم و میخواهم
207
00:06:17,520 –> 00:06:18,000
208
00:06:18,000 –> 00:06:21,039
نام محصول را پیدا کنم، بنابراین در اینجا
209
00:06:21,039 –> 00:06:24,160
میتوانیم ببینیم که نام در این یک برچسب
210
00:06:24,160 –> 00:06:25,520
با این کلاس در اینجا است، بنابراین کلاس را در این
211
00:06:25,520 –> 00:06:28,240
کلاس کپی میکنم. یک برچسب
212
00:06:28,240 –> 00:06:29,520
من می خواهم به اینجا برگردم من می
213
00:06:29,520 –> 00:06:32,880
خواهم یک نقطه انجام دهم و سپس کلاس آنجا
214
00:06:32,880 –> 00:06:34,720
گاهی اوقات کلاس ها یک فاصله دارند اگر
215
00:06:34,720 –> 00:06:36,800
t سلام، سعی کنید یک نقطه در وسط قرار دهید
216
00:06:36,800 –> 00:06:39,199
که اغلب برای شما کار می کند،
217
00:06:39,199 –> 00:06:40,800
ما براکت خود را به این صورت می بندیم و سپس
218
00:06:40,800 –> 00:06:42,560
نقطه را انجام
219
00:06:42,560 –> 00:06:44,160
می دهیم تا اولین صدا را دریافت کنیم تا بتوانیم
220
00:06:44,160 –> 00:06:46,720
بلافاصله ببینیم که این همان
221
00:06:46,720 –> 00:06:48,720
یک عنصر تگ واقعی که ما دقیقاً در اینجا به آن نگاه می کردیم،
222
00:06:48,720 –> 00:06:50,000
223
00:06:50,000 –> 00:06:52,960
بنابراین این عنصر در اینجا ما به نوعی
224
00:06:52,960 –> 00:06:54,479
شماره گیری کرده ایم و آن را در آنجا دریافت کرده ایم
225
00:06:54,479 –> 00:06:55,120
،
226
00:06:55,120 –> 00:06:56,800
اما می خواهیم متن را از این
227
00:06:56,800 –> 00:06:59,360
عنصر دریافت کنیم، بنابراین بعد از کلاس نام را در اینجا
228
00:06:59,360 –> 00:06:59,759
229
00:06:59,759 –> 00:07:02,319
دو دونقطه قرار می دهیم و سپس کلمه text و
230
00:07:02,319 –> 00:07:03,440
با نقطه دریافت
231
00:07:03,440 –> 00:07:05,520
آن متن آن
232
00:07:05,520 –> 00:07:07,360
شی را به خوبی به ما برمی گرداند.
233
00:07:07,360 –> 00:07:07,919
234
00:07:07,919 –> 00:07:09,919
235
00:07:09,919 –> 00:07:12,000
236
00:07:12,000 –> 00:07:13,919
همه اسامی محصولات را دریافت کنید،
237
00:07:13,919 –> 00:07:15,680
میتوانیم ببینیم که
238
00:07:15,680 –> 00:07:16,240
لیستی
239
00:07:16,240 –> 00:07:19,039
از صد نام محصول را از
240
00:07:19,039 –> 00:07:20,720
صفحه اول این سایت
241
00:07:20,720 –> 00:07:22,479
به ما بازگردانده است، بنابراین ما میتوانیم ببینیم چگونه شروع به جمع شدن همه
242
00:07:22,479 –> 00:07:24,400
آنها میکند، بنابراین من فقط میخواهم آن را پاک کنم. این
243
00:07:24,400 –> 00:07:25,440
بالا و کاری که ما می خواهیم انجام دهیم این است
244
00:07:25,440 –> 00:07:27,039
که قیمت را نیز دریافت می کنیم و می
245
00:07:27,039 –> 00:07:29,199
خواهیم بررسی کنیم که
246
00:07:29,199 –> 00:07:31,120
اگر ماوس را روی آن نگه دارم، میتوانیم
247
00:07:31,120 –> 00:07:33,120
ببینیم که یک کلاس span
248
00:07:33,120 –> 00:07:38,160
از قیمت Uh داریم، بنابراین میتوانم آن را
249
00:07:38,160 –> 00:07:41,479
به اینجا کپی کنم و آن را در محصولات
250
00:07:41,479 –> 00:07:43,280
products.css
251
00:07:43,280 –> 00:07:46,720
قرار دادیم و قیمت دامنه بود و من میخواهم
252
00:07:46,720 –> 00:07:49,520
متن این عنصر
253
00:07:49,520 –> 00:07:50,879
و من می خواهم دریافت کنم زیرا
254
00:07:50,879 –> 00:07:52,639
در این مورد اولین مورد را دریافت
255
00:07:52,639 –> 00:07:54,000
می کنم و می بینیم که
256
00:07:54,000 –> 00:07:56,080
همان نقطه 2495 ظاهر
257
00:07:56,080 –> 00:07:57,440
258
00:07:57,440 –> 00:07:58,960
می شود. می تواند به شما نشان دهد
259
00:07:58,960 –> 00:08:00,560
scrapey راه هایی دارد که می توانید این کار را انجام دهید
260
00:08:00,560 –> 00:08:02,400
اما من فقط از dot جایگزین استفاده می کنم
261
00:08:02,400 –> 00:08:04,639
زیرا این یک مثال ساده است و
262
00:08:04,639 –> 00:08:06,000
علامت پوند را
263
00:08:06,000 –> 00:08:07,120
با هیچ چیز جایگزین
264
00:08:07,120 –> 00:08:09,199
می کنیم زیرا اگر بخواهیم آن را به csv صادر
265
00:08:09,199 –> 00:08:10,400
کنیم این کار انجام می شود. سر راهمان قرار بگیر
266
00:08:10,400 –> 00:08:12,560
و آنجا میرویم همینجاست و
267
00:08:12,560 –> 00:08:14,160
آخرین آن پیوندی بود که در
268
00:08:14,160 –> 00:08:15,520
واقع در همان
269
00:08:15,520 –> 00:08:19,280
برچسبی بود که قبلاً اینجا
270
00:08:19,280 –> 00:08:21,440
به آن نگاه میکردیم، بنابراین میتوانیم برگردیم و چند بار بالا برویم
271
00:08:21,440 –> 00:08:22,400
272
00:08:22,400 –> 00:08:25,759
و این هم ما بود. یک برچسب در اینجا وجود دارد، اما به
273
00:08:25,759 –> 00:08:26,479
جای انجام
274
00:08:26,479 –> 00:08:29,599
متن مانند این، میخواهیم یک dot trib انجام دهیم
275
00:08:29,599 –> 00:08:33,360
و سپس به این شکل href
276
00:08:33,360 –> 00:08:35,440
کنید زیرا میخواهیم th e href و
277
00:08:35,440 –> 00:08:36,958
ما می خواهیم از شر نقطه دریافت
278
00:08:36,958 –> 00:08:40,640
خلاص شویم و این لینک را در آنجا به ما می دهد
279
00:08:40,640 –> 00:08:42,479
اکنون پیوند یک پیوند کامل در وب سایت است
280
00:08:42,479 –> 00:08:43,679
که به ما کمک می کند
281
00:08:43,679 –> 00:08:45,680
و کاری که می توانیم انجام دهیم این است که اگر
282
00:08:45,680 –> 00:08:47,440
می خواستیم از داخل آن لینک اطلاعاتی به دست آوریم
283
00:08:47,440 –> 00:08:49,519
اساساً میتوانیم
284
00:08:49,519 –> 00:08:51,279
همه پیوندها را ذخیره کنیم و سپس
285
00:08:51,279 –> 00:08:53,200
scrapey از هر یک برای ما عبور میکند،
286
00:08:53,200 –> 00:08:54,480
اما این کار را انجام نمیدهیم، در این
287
00:08:54,480 –> 00:08:55,920
صورت فقط
288
00:08:55,920 –> 00:08:56,720
نام محصولات
289
00:08:56,720 –> 00:08:59,040
و قیمتها و پیوندها را از هر
290
00:08:59,040 –> 00:09:01,640
صفحه دریافت میکنیم. در وب سایت، بنابراین ما 746 مورد دریافت کردیم،
291
00:09:01,640 –> 00:09:05,440
بنابراین این هفت یا هشت صفحه است،
292
00:09:05,440 –> 00:09:06,800
بنابراین اکنون به نقطه ای رسیده
293
00:09:06,800 –> 00:09:08,959
ایم که می توانیم بفهمیم داده های ما در کجای
294
00:09:08,959 –> 00:09:10,880
صفحه قرار دارند و می دانیم که چگونه به
295
00:09:10,880 –> 00:09:11,680
296
00:09:11,680 –> 00:09:13,120
آن دسترسی داشته باشیم. می خواهیم این کار را انجام دهیم این است که ما
297
00:09:13,120 –> 00:09:15,360
در واقع می خواهیم اکنون شروع به مونتاژ
298
00:09:15,360 –> 00:09:16,000
299
00:09:16,000 –> 00:09:19,200
فایل spyder pi خود کنیم تا
300
00:09:19,200 –> 00:09:21,120
این کار را انجام دهیم، زیرا باید چند کار را انجام دهیم زیرا باید از
301
00:09:21,120 –> 00:09:23,200
دستورات scrapy اطاعت کنیم،
302
00:09:23,200 –> 00:09:24,880
بنابراین من کد vs را در پوشه پروژه خود باز کرده ام
303
00:09:24,880 –> 00:09:27,120
و می توانیم اینجا را ببینیم. که در اینجا
304
00:09:27,120 –> 00:09:28,800
پوشه spiders در سمت چپ است
305
00:09:28,800 –> 00:09:30,720
و ما می خواهیم یک عنکبوت جدید ایجاد کنیم برای اینکه
306
00:09:30,720 –> 00:09:32,000
بتوانم این صفحه را بخزیم،
307
00:09:32,000 –> 00:09:33,279
بنابراین می خواهم یک فایل جدید ایجاد
308
00:09:33,279 –> 00:09:36,399
کنم و آن را برای یک فایل پای، نقطه عنکبوتی py می نامم
309
00:09:36,399 –> 00:09:37,440
310
00:09:37,440 –> 00:09:39,040
و سپس آن را جمع می کنم
311
00:09:39,040 –> 00:09:40,720
و می توانیم شروع به نوشتن اسکریپت خراشیده خود کنیم.
312
00:09:40,720 –> 00:09:41,360
313
00:09:41,360 –> 00:09:42,959
بنابراین اولین کاری که باید انجام دهیم این است که
314
00:09:42,959 –> 00:09:45,519
scrapey مانند این را وارد کنیم
315
00:09:45,519 –> 00:09:48,560
و سپس باید یک کلاس
316
00:09:48,560 –> 00:09:50,880
از یک عنکبوت ایجاد کنیم، اکنون وقتی یک
317
00:09:50,880 –> 00:09:52,160
نمونه جدید از این کلاس ایجاد می
318
00:09:52,160 –> 00:09:54,080
کنیم، می خواهیم به آن یک نام و غیره و غیره بدهیم
319
00:09:54,080 –> 00:09:55,680
و همه اینها دارند.
320
00:09:55,680 –> 00:09:57,440
از کلاس عنکبوت به ارث
321
00:09:57,440 –> 00:09:58,880
322
00:09:58,880 –> 00:10:02,480
میبریم، پس بیایید عنکبوت ویسکی خود را عنکبوت بنامیم و باید مطمئن
323
00:10:02,480 –> 00:10:05,519
شویم که عنکبوت نقطهخراش است زیرا از اینجاست
324
00:10:05,519 –> 00:10:06,399
که
325
00:10:06,399 –> 00:10:08,640
اطلاعات را از
326
00:10:08,640 –> 00:10:11,440
هماکنون میگیریم، هر عنکبوت باید نامی داشته باشد، بنابراین
327
00:10:11,440 –> 00:10:12,560
من هستم. ویسکی من را صدا
328
00:10:12,560 –> 00:10:15,040
می زنیم و سپس ما می خواهیم
329
00:10:15,040 –> 00:10:16,320
330
00:10:16,320 –> 00:10:19,680
آدرس های اینترنتی شروع داشته باشیم، اکنون این یک لیست است، اما من فقط
331
00:10:19,680 –> 00:10:20,399
یکی را
332
00:10:20,399 –> 00:10:23,120
در اینجا قرار می دهم و آدرس اینترنتی خود را در
333
00:10:23,120 –> 00:10:23,920
334
00:10:23,920 –> 00:10:25,360
آنجا می گیرم و آن را در آن جای می دهم بنابراین آنچه که ما
335
00:10:25,360 –> 00:10:27,120
اساساً می گوییم این است که اینها آدرس های اینترنتی هستند
336
00:10:27,120 –> 00:10:28,959
که ما شروع به خراشیدن خواهیم کرد،
337
00:10:28,959 –> 00:10:30,959
بنابراین در داخل اسکراپر باید مقداری داشته باشید
338
00:10:30,959 –> 00:10:32,399
عملکردهایی که
339
00:10:32,399 –> 00:10:35,040
به شما اجازه می دهند کارهای خاصی را انجام دهید،
340
00:10:35,040 –> 00:10:36,880
اصلی ترین موردی که قرار است از آن استفاده کنیم،
341
00:10:36,880 –> 00:10:38,399
تابع pass
342
00:10:38,399 –> 00:10:40,480
um است که اساساً مانند
343
00:10:40,480 –> 00:10:41,680
این است که شما تا به حال هر یک از ویدیوهای دیگر من را تماشا کرده باشید،
344
00:10:41,680 –> 00:10:43,760
من سه عملکرد را برای وب scraper اصلی انجام می دهم.
345
00:10:43,760 –> 00:10:45,120
346
00:10:45,120 –> 00:10:48,320
استخراج تبدیل و بارگذاری یا درخواست
347
00:10:48,320 –> 00:10:50,640
پاس خروجی اساساً یکسان است،
348
00:10:50,640 –> 00:10:52,399
بنابراین این یکی قرار است ارسال شود، بنابراین
349
00:10:52,399 –> 00:10:53,760
میخواهیم تعریف کنیم
350
00:10:53,760 –> 00:10:55,760
من آن را پاس میخوانیم و
351
00:10:55,760 –> 00:10:57,920
باید خود را داشته باشیم زیرا در درون خودش
352
00:10:57,920 –> 00:10:58,880
353
00:10:58,880 –> 00:11:00,880
تابعی است که در آن وجود دارد. این کلاس و ما
354
00:11:00,880 –> 00:11:02,000
355
00:11:02,000 –> 00:11:04,880
اکنون از پاسخ استفاده خواهیم کرد پاسخ همان چیزی است که قبلاً
356
00:11:04,880 –> 00:11:06,240
در پوسته خود به آن نگاه کردیم،