در این مطلب، ویدئو آموزش Scraping Python Ebay: Web scraping با پایتون و BeautifulSoup | پروژه های پایتون با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:40:53
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,030 –> 00:00:02,850
سلام به همه امروز من یک
2
00:00:02,850 –> 00:00:05,400
پروژه دیگر برای شما دارم، این یک اسکراپر وب eBay است،
3
00:00:05,400 –> 00:00:08,069
بیایید تصور کنیم که می
4
00:00:08,069 –> 00:00:10,620
خواهید یک تجارت eBay راه اندازی کنید تا محصولی را بفروشید
5
00:00:10,620 –> 00:00:13,080
که تقاضای بالایی دارد و برای
6
00:00:13,080 –> 00:00:13,500
انجام آن
7
00:00:13,500 –> 00:00:16,230
باید یک جایگاه یا محصولی را
8
00:00:16,230 –> 00:00:18,570
برای فروش انتخاب کنید. ممکن است نیاز به دریافت
9
00:00:18,570 –> 00:00:21,539
اطلاعاتی در مورد وضعیت فعلی در
10
00:00:21,539 –> 00:00:24,600
بازار B داشته باشید و یکی از راههای
11
00:00:24,600 –> 00:00:27,359
جمعآوری دادههای مورد نیاز این است که یک
12
00:00:27,359 –> 00:00:29,789
تحقیق دستی برای کالاها یا دستهبندی
13
00:00:29,789 –> 00:00:33,600
کالاها انجام دهید، اما استفاده از آن کافی است و زمان
14
00:00:33,600 –> 00:00:37,020
میتواند کاری به نظر برسد. اما برخی از
15
00:00:37,020 –> 00:00:39,210
مهارت های برنامه نویسی پایتون می تواند به شما کمک کند تا
16
00:00:39,210 –> 00:00:42,030
داده های مورد نیاز را تقریباً به طور خودکار جمع آوری کنید
17
00:00:42,030 –> 00:00:44,940
و امروز ما یک اسکراپر وب ebay می نویسیم
18
00:00:44,940 –> 00:00:47,879
که برخی از داده ها را جمع آوری کرده و
19
00:00:47,879 –> 00:00:52,500
در یک فایل CSV می نویسد. بیایید شروع به باز
20
00:00:52,500 –> 00:00:56,250
کردن وب سایت ebay.com کنیم و فرض کنیم می
21
00:00:56,250 –> 00:00:58,199
خواهم تحقیق کنم دسته ساعت های مردانه را
22
00:00:58,199 –> 00:00:59,070
23
00:00:59,070 –> 00:01:01,649
در نوار جستجو وارد می کنم،
24
00:01:01,649 –> 00:01:05,339
درخواست های جستجو ساعت های مردانه را وارد می
25
00:01:05,339 –> 00:01:08,670
کنم و نتایج جستجو را دریافت کردیم و قبل از اینکه
26
00:01:08,670 –> 00:01:11,310
یک خط کد بنویسم باید به صورت دستی
27
00:01:11,310 –> 00:01:14,790
وب سایت eBay را بررسی کنم و تعیین
28
00:01:14,790 –> 00:01:17,750
کنم اسکراپر را انجام خواهد داد، بیایید باز کنیم
29
00:01:17,750 –> 00:01:24,210
و فکر می کنم که می خواهم
30
00:01:24,210 –> 00:01:29,610
عنوان قیمت و مقدار
31
00:01:29,610 –> 00:01:33,750
اقلام فروخته شده را از اینجا یا شاید از اینجا جمع آوری کنم، بنابراین
32
00:01:33,750 –> 00:01:36,090
عصر ضایعات موارد زیر را انجام می دهد،
33
00:01:36,090 –> 00:01:39,600
باید درخواست های وب سایت eBay را انجام دهد
34
00:01:39,600 –> 00:01:44,360
و دریافت کند. کد HTML صفحه فهرست
35
00:01:44,360 –> 00:01:47,670
این یکی یک صفحه با لیست
36
00:01:47,670 –> 00:01:50,850
محصولات، سپس باید تمام پیوندها به صفحات جزئیات را جمع آوری کند،
37
00:01:50,850 –> 00:01:54,180
این
38
00:01:54,180 –> 00:01:57,149
یکی این یکی و غیره و سپس
39
00:01:57,149 –> 00:02:00,540
باید قیمت عنوان داده های مورد نیاز و غیره و سپس را تجزیه کند.
40
00:02:00,540 –> 00:02:03,360
داده ها را به
41
00:02:03,360 –> 00:02:04,320
فایل CSV صادر می کند،
42
00:02:04,320 –> 00:02:07,860
بیایید اسکراپر ما را درست شروع کنیم، من
43
00:02:07,860 –> 00:02:10,590
پوشه پروژه را ایجاد کردم و در
44
00:02:10,590 –> 00:02:12,180
حال ایجاد
45
00:02:12,180 –> 00:02:17,370
اسکریپت پایتون با نام eBay scrapper
46
00:02:17,370 –> 00:02:21,500
dot py هستم و اکنون باید چند
47
00:02:21,500 –> 00:02:25,920
کتابخانه پایتون را نصب کنم، بنابراین از افراد استفاده می کنم.
48
00:02:25,920 –> 00:02:29,670
Python 3 اگر از
49
00:02:29,670 –> 00:02:32,329
سیستم عامل ویندوز استفاده می کنید، فقط یک پیپ دارید،
50
00:02:32,329 –> 00:02:40,019
بنابراین من از نصب pip 3 استفاده می کنم،
51
00:02:40,019 –> 00:02:42,680
قبلاً آن را نصب کرده ام و در مرحله بعد در
52
00:02:42,680 –> 00:02:46,099
حال ایجاد یک نقطه ورودی از scrapper در
53
00:02:46,099 –> 00:02:51,500
صورتی که بلوک اصلی، شرط if را بررسی می کند
54
00:02:51,500 –> 00:02:53,669
و اینکه آیا فایل
55
00:02:53,669 –> 00:02:57,540
aybe است یا خیر. یک قراضه per dot py مستقیماً
56
00:02:57,540 –> 00:03:00,870
از کنسول اجرا می شود یا نه اگر فایل
57
00:03:00,870 –> 00:03:03,180
از کنسول اجرا
58
00:03:03,180 –> 00:03:06,750
می شود ویژگی name آن با من برابر است اما اگر
59
00:03:06,750 –> 00:03:09,359
فایل به اسکریپت دیگری وارد شود
60
00:03:09,359 –> 00:03:13,200
ویژگی name آن حاوی
61
00:03:13,200 –> 00:03:16,680
نام فایل یک wrapper اصلی خواهد بود. در این حالت
62
00:03:16,680 –> 00:03:19,319
ویژگی نام آن برابر با
63
00:03:19,319 –> 00:03:23,040
کتابخانه پایه Y خواهد بود و اگر این بلوک
64
00:03:23,040 –> 00:03:25,500
true را برگرداند، تابع main
65
00:03:25,500 –> 00:03:28,680
فراخوانی می شود، بنابراین من یک تابع جدید
66
00:03:28,680 –> 00:03:34,169
main با پاس ایجاد می کنم، تابع main
67
00:03:34,169 –> 00:03:36,930
نقش یک را بازی می کند. hub و
68
00:03:36,930 –> 00:03:38,970
علت سایر توابع را مدیریت می کند
69
00:03:38,970 –> 00:03:41,849
و ما داده های خراشیده را جمع آوری می کنیم که
70
00:03:41,849 –> 00:03:47,849
می خواهم لیست انجام کارها را اینجا بچسبانم و
71
00:03:47,849 –> 00:03:51,419
قدم بعدی ما این است که یک صفحه مبتنی بر e
72
00:03:51,419 –> 00:03:54,079
بگیریم بنابراین ما به تابعی نیاز داریم که
73
00:03:54,079 –> 00:03:57,900
درخواست هایی را به EBA ارسال کند و اجازه دهید یک
74
00:03:57,900 –> 00:04:02,159
تابع جدید تعریف کنید و نامش را بگذارید. اجازه دهید صفحه را ببینیم و
75
00:04:02,159 –> 00:04:06,389
دریافت کنیم که آدرس RL شما را
76
00:04:06,389 –> 00:04:10,259
به عنوان آرگومان می گیرد و تابع get page
77
00:04:10,259 –> 00:04:12,479
با کتابخانه درخواست
78
00:04:12,479 –> 00:04:15,090
هایی که اکنون نصب کرده ایم درخواست می کند، من
79
00:04:15,090 –> 00:04:20,690
باید آن را وارد کنم، بنابراین درخواست ها را
80
00:04:20,690 –> 00:04:23,700
در داخل get وارد کنید. تابع page من
81
00:04:23,700 –> 00:04:25,530
یک پاسخ متغیر جدید ایجاد می کنم
82
00:04:25,530 –> 00:04:29,970
که حاوی
83
00:04:29,970 –> 00:04:32,340
پاسخ سرور ebay chrome است،
84
00:04:32,340 –> 00:04:37,610
متغیر پاسخ برابر است با فراخوانی
85
00:04:37,610 –> 00:04:42,750
درخواست ها get متد get’ و
86
00:04:42,750 –> 00:04:45,420
متد get متغیر URL را به عنوان
87
00:04:45,420 –> 00:04:49,830
آرگومان بعدی در متن اصلی می گیرد.
88
00:04:49,830 –> 00:04:54,120
تابع من در متغیر شما یک URL ایجاد می کنم
89
00:04:54,120 –> 00:04:59,820
که برابر با آدرس این
90
00:04:59,820 –> 00:05:06,240
صفحه جزئیات است. پیشنهاد می کنم
91
00:05:06,240 –> 00:05:09,630
ابتدا داده های مورد نیاز را خراش دهیم و سپس
92
00:05:09,630 –> 00:05:11,730
عملکردی برای خراش دادن همه
93
00:05:11,730 –> 00:05:16,140
پیوندها به صفحات داخلی اضافه کنیم تا
94
00:05:16,140 –> 00:05:19,380
URL صفحه دقیقی داشته باشیم. به تابع get page منتقل شده اند
95
00:05:19,380 –> 00:05:22,800
و بنابراین بیایید تابع get page را فراخوانی
96
00:05:22,800 –> 00:05:26,210
کنیم و
97
00:05:26,210 –> 00:05:32,220
متغیر URL را در اینجا به عنوان آرگومان دریافت کنید URL صفحه
98
00:05:32,220 –> 00:05:37,200
99
00:05:37,200 –> 00:05:40,590
100
00:05:40,590 –> 00:05:44,550
را به آن منتقل کنیم. خطا یافت شد در
101
00:05:44,550 –> 00:05:47,640
صورتی که منبع درخواستی وجود نداشته
102
00:05:47,640 –> 00:05:51,690
باشد یا می تواند ما را ممنوع کند و دسترسی داشته باشیم و
103
00:05:51,690 –> 00:05:54,660
با
104
00:05:54,660 –> 00:05:58,350
خطای 4:03 و غیره پاسخ خواهد داد و یک ایده خوب این است که
105
00:05:58,350 –> 00:06:02,280
بررسی کنیم که سرور چگونه به ما پاسخ داده است و برای
106
00:06:02,280 –> 00:06:06,750
انجام آن می توانیم از ویژگی ok و t استفاده کنیم.
107
00:06:06,750 –> 00:06:08,940
کد وضعیت ویژگی مناسب
108
00:06:08,940 –> 00:06:12,330
بند پاسخ و متغیر پاسخ ما
109
00:06:12,330 –> 00:06:15,419
دقیقاً نمونه ای از عبارت
110
00:06:15,419 –> 00:06:19,290
پاسخ است، بنابراین ما می توانیم از این
111
00:06:19,290 –> 00:06:23,130
ویژگی ها برای انجام چنین بررسی هایی برای
112
00:06:23,130 –> 00:06:29,260
نمونه چاپ پاسخ استفاده
113
00:06:29,260 –> 00:06:33,010
کنیم و درست است، یعنی
114
00:06:33,010 –> 00:06:37,450
سرور eBay نیز با موفقیت پاسخ می دهد. ما
115
00:06:37,450 –> 00:06:46,060
می توانیم از ویژگی کد وضعیت استفاده کنیم که آنها دریافت کردند
116
00:06:46,060 –> 00:06:51,690
200 200 به این معنی است که سرور با
117
00:06:51,690 –> 00:06:55,330
موفقیت عالی پاسخ داد و اکنون
118
00:06:55,330 –> 00:07:02,830
شرط اگر-الا را در شما ایجاد می کنم بنابراین اگر
119
00:07:02,830 –> 00:07:09,790
پاسخ نداد یا هر کد وضعیتی 200 را قبول کنید
120
00:07:09,790 –> 00:07:12,940
بنابراین اگر
121
00:07:12,940 –> 00:07:25,750
auch نیست می خواهم یک پیام دهید و اگر
122
00:07:25,750 –> 00:07:30,520
پاسخ های سرور برای مدتی با موفقیت بگذرد،
123
00:07:30,520 –> 00:07:35,080
مورد بعدی
124
00:07:35,080 –> 00:07:37,960
پاسخ سرور را گرفتیم و اکنون باید کد HTML
125
00:07:37,960 –> 00:07:40,450
صفحه ای را که آدرس آن
126
00:07:40,450 –> 00:07:43,270
را به روش get ارسال کرده ایم دریافت کنیم و در عین
127
00:07:43,270 –> 00:07:46,240
حال جستجو را به نحو احسن انجام دهیم.
128
00:07:46,240 –> 00:07:50,410
ما باید یک کد HTML را به
129
00:07:50,410 –> 00:07:53,830
درخت اشیاء پایتون تبدیل کنیم و از
130
00:07:53,830 –> 00:07:57,070
کتابخانه suit زیبا برای انجام این کار استفاده می کنیم، بنابراین من
131
00:07:57,070 –> 00:07:59,260
باید کلاس beautifulsoup را
132
00:07:59,260 –> 00:08:08,280
از PS برای وارد کردن سوپ زیبا وارد کنم،
133
00:08:08,280 –> 00:08:13,000
بنابراین داخل t he else بلوک من یک متغیر جدید ایجاد می کنم
134
00:08:13,000 –> 00:08:21,100
سوپ سوپ نمونه ای از
135
00:08:21,100 –> 00:08:24,220
کلاس سوپ زیبا است و
136
00:08:24,220 –> 00:08:26,470
سازنده کلاس سوپ زیبا
137
00:08:26,470 –> 00:08:28,810
حداقل دو
138
00:08:28,810 –> 00:08:32,909
آرگومان می
139
00:08:32,909 –> 00:08:38,049
140
00:08:38,049 –> 00:08:40,450
گیرد. آرگومان تجزیه کننده ای است که
141
00:08:40,450 –> 00:08:41,669
در HD
142
00:08:41,669 –> 00:08:45,420
Millcote تجزیه می شود و کارآمدترین و سریع ترین
143
00:08:45,420 –> 00:08:48,770
تجزیه کننده Alex ml Parsa
144
00:08:48,770 –> 00:08:50,040
beautifulsoup است که
145
00:08:50,040 –> 00:08:53,400
از آن در زیر هود استفاده می کند و چیزی که باید
146
00:08:53,400 –> 00:08:57,450
آن را به عنوان آرگومان دوم مشخص کنیم تا
147
00:08:57,450 –> 00:09:03,180
بین نقل قول های L XML و در نهایت
148
00:09:03,180 –> 00:09:07,890
شیء دریافت کنند. تابع نمونه beautifulsoup را برمی گرداند
149
00:09:07,890 –> 00:09:08,850
150
00:09:08,850 –> 00:09:13,650
گام بعدی متغیر سوپ ما حذف
151
00:09:13,650 –> 00:09:19,200
داده های مورد نیاز است، بنابراین من دارم یک تابع جدید ایجاد می کنم
152
00:09:19,200 –> 00:09:26,580
اما جزئیات آن را به عنوان مثال انجام
153
00:09:26,580 –> 00:09:30,060
می دهد که شی سوپ را به عنوان یک
154
00:09:30,060 –> 00:09:33,570
آرگومان می گیرد و اکنون اجازه دهید مقداری
155
00:09:33,570 –> 00:09:38,610
تجزیه و تحلیل از صفحه انجام دهیم که عنوان آن را می گیرم.
156
00:09:38,610 –> 00:09:48,360
قیمت و اقلام فروخته شده بیایید
157
00:09:48,360 –> 00:09:51,210
با عنوان شروع کنیم و هدف من در حال
158
00:09:51,210 –> 00:09:54,360
حاضر شناسایی این عناصر در
159
00:09:54,360 –> 00:09:57,920
صفحه فعلی است بنابراین من نیاز به عنوانی دارم که
160
00:09:57,920 –> 00:10:01,830
روی آن کلیک راست کرده و بازرسی را انتخاب کنم. یا
161
00:10:01,830 –> 00:10:06,840
عنصر را بررسی کنیم، میتوانیم ببینیم که
162
00:10:06,840 –> 00:10:10,680
بازرس باز شد و اکنون میتوانیم ببینیم
163
00:10:10,680 –> 00:10:15,270
که عنوان یک تگ HTML h1 با
164
00:10:15,270 –> 00:10:20,160
شناسه عنوان آیتم است، بنابراین من میخواهم
165
00:10:20,160 –> 00:10:23,130
تگ h1 را با این ویژگی خاص
166
00:10:23,130 –> 00:10:23,640
167
00:10:23,640 –> 00:10:30,170
پیدا کنم. ایجاد
168
00:10:30,170 –> 00:10:34,620
متغیر h1 که برابر با شی سوپ است
169
00:10:34,620 –> 00:10:38,700
که به عنوان آرگومان دریافت کردیم و من باید
170
00:10:38,700 –> 00:10:43,980
از روش آن استفاده کنم find hole و من
171
00:10:43,980 –> 00:10:47,750
صبور هستم تا نام متد نهایی تگ
172
00:10:47,750 –> 00:10:52,590
h1 کاما و خاصیت شناسایی آن
173
00:10:52,590 –> 00:10:54,040
که
174
00:10:54,040 –> 00:11:01,750
ID ویژگی ایده برابر با آیتم است. عنوان ما فقط می توانیم
175
00:11:01,750 –> 00:11:06,930
آن را در اینجا کپی و جایگذاری کنیم و بیایید
176
00:11:06,930 –> 00:11:13,060
آن را پرینت بگیریم و h1 را بیاوریم. متأسفم که
177
00:11:13,060 –> 00:11:15,910
فراموش کردم تابع داده جزئیات را فراخوانی کنم،
178
00:11:15,910 –> 00:11:19,080
بنابراین در اینجا در تابع اصلی
179
00:11:19,080 –> 00:11:26,500
من Colin هستم و اطلاعات جزئیات را دریافت می کنم و به عنوان
180
00:11:26,500 –> 00:11:27,610
یک استدلال
181
00:11:27,610 –> 00:11:32,590
من فراخوانی get page
182
00:11:32,590 –> 00:11:35,430
و متغیر Ural را به عنوان آرگومان
183
00:11:35,430 –> 00:11:42,040
ذخیره و اجرا می کنم و می بینیم
184
00:11:42,040 –> 00:11:48,210
که فقط یک تگ h1 در صفحه وجود دارد بنابراین در اینجا
185
00:11:48,210 –> 00:11:53,110
می توانم از متد adjust find استفاده کنم نه همه روش را پیدا کنم
186
00:11:53,110 –> 00:11:53,860
187
00:11:53,860 –> 00:11:55,990
چه مشکلی با find وجود دارد. متد
188
00:11:55,990 –> 00:11:58,000
متد find فقط اولین پاسخ را برمی
189
00:11:58,000 –> 00:12:00,340
گرداند ult و گاهی اوقات می توانند
190
00:12:00,340 –> 00:12:03,970
نتیجه غیرمنتظره ای دریافت کنند، بنابراین من فقط می خواستم
191
00:12:03,970 –> 00:12:08,260
بررسی کنم که آیا صفحه دارای بیش از یک
192
00:12:08,260 –> 00:12:12,640
تگ h1 است، بنابراین به هر حال ما همیشه
193
00:12:12,640 –> 00:12:17,250
می توانیم کد خود را اصلاح کنیم، اجازه دهید دوباره چاپ
194
00:12:17,250 –> 00:12:22,420
کنیم و اکنون می توانیم
195
00:12:22,420 –> 00:12:26,440
عنوان محصول را به زبان انگلیسی در اینجا ببینیم. داده های درونی
196
00:12:26,440 –> 00:12:31,120
در ویژگی key des تگ هشت است
197
00:12:31,120 –> 00:12:35,620
و متن تگ h1 نیست، بنابراین باید
198
00:12:35,620 –> 00:12:43,300
درخواست جستجوی خود را اصلاح کنم، بنابراین اینجا هستم
199
00:12:43,300 –> 00:12:49,840
: روش پیدا کردن بعدی و می خواهم
200
00:12:49,840 –> 00:12:51,670
توجه شما را جلب کنم که این
201
00:12:51,670 –> 00:12:55,570
عبارت سوپ زیبا را برمی گرداند.
202
00:12:55,570 –> 00:12:59,080
شی تا بتوانیم از
203
00:12:59,080 –> 00:13:02,800
متدها و ویژگی های زیبای سوپ بیشتر استفاده کنیم و i’m :
204
00:13:02,800 –> 00:13:04,300
205
00:13:04,300 –> 00:13:09,100
متد بعدی، بنابراین در اینجا من به دنبال یک برچسب هستم
206
00:13:09,100 –> 00:13:14,980
و اجازه دهید آن را ذخیره کرده و دوباره اجرا کنیم این
207
00:13:14,980 –> 00:13:19,480
بار یک برچسب دریافت کردیم و می بینیم
208
00:13:19,480 –> 00:13:25,360
که ویژگی TDS داده حاوی عنوان مورد نیاز است.
209
00:13:25,360 –> 00:13:30,850
بنابراین من باید مقدار ویژگی DMT DES را بدست بیاورم که
210
00:13:30,850 –> 00:13:35,260
چگونه این کار را انجام دهم که این
211
00:13:35,260 –> 00:13:38,680
عبارت یک برچسب را برمی گرداند.
212
00:13:38,680 –> 00:13:39,730
213
00:13:39,730 –> 00:13:44,350
214
00:13:44,350 –> 00:13:45,610
215
00:13:45,610 –> 00:13:50,050
216
00:13:50,050 –> 00:13:53,560
را
217
00:13:53,560 –> 00:13:59,560
ویژگی من میخواهم آن را دریافت کنم دادههای MPGe است
218
00:13:59,560 –> 00:14:06,130
که ذخیره میشود و دوباره اجرا میشود و ما
219
00:14:06,130 –> 00:14:10,180
عنوان محصول را به زبان انگلیسی دریافت میکنیم، اما
220
00:14:10,180 –> 00:14:13,210
گاهی اوقات وبسایتها ممکن است از
221
00:14:13,210 –> 00:14:15,730
طرحبندی متفاوتی برای همان شیء در نگاه اول
222
00:14:15,730 –> 00:14:18,910
استفاده کنند، به عنوان مثال اگر محصولی دارای
223
00:14:18,910 –> 00:14:21,910
تخفیف است، سپس آن را عرضه میکند. در عنوان یا
224
00:14:21,910 –> 00:14:25,120
قیمت Hunton دیگری میتواند
225
00:14:25,120 –> 00:14:29,380
کلاسهای CSS مختلف و شناسههای مختلف داشته باشد و
226
00:14:29,380 –> 00:14:31,810
سوپ زیبا نمیتواند شیء مورد نظر را پیدا کند
227
00:14:31,810 –> 00:14:34,450
و به عنوان مثال با جستجوهای تحقیقاتی
228
00:14:34,450 –> 00:14:38,920
ما فرض کنیم که برای
229
00:14:38,920 –> 00:14:42,160
محصول دیگری متفاوت است، مثلاً
230
00:14:42,160 –> 00:14:45,070
چیزی در اینجا و اسکریپت I را اجرا کنیم.
231
00:14:45,070 –> 00:14:48,940
یک استثنا گرفتیم و اسکریپت ما
232
00:14:48,940 –> 00:14:54,910
با خطای غیر تایپ خاتمه یافت و برای رسیدگی به
233
00:14:54,910 –> 00:14:58,390
چنین استثنائاتی، پایتون
234
00:14:58,390 –> 00:14:59,740
بلوکهای خشک به جز بلوکها را فراهم میکند،
235
00:14:59,740 –> 00:15:03,970
بنابراین میخواهم این عبارت را خشک کنم
236
00:15:03,970 –> 00:15:08,860
به جز بلوکها، تابع داده جزئیات
237
00:15:08,860 –> 00:15:14,530
را امتحان کنید، سعی میکنیم دادههای مورد نیاز را
238
00:15:14,530 –> 00:15:17,860
با آن پیدا کنیم. حداقل پرس و جوی جستجو
239
00:15:17,860 –> 00:15:24,670
اگر موفق نشد پس من می خواهم h1 را به عنوان یک
240
00:15:24,670 –> 00:15:29,590
رشته خالی داشته باشم، بیایید آن را عنوان بنامیم، بیایید
241
00:15:29,590 –> 00:15:33,790
جلوتر برویم و اکنون به قیمت نیاز دارم، بنابراین
242
00:15:33,790 –> 00:15:41,080
من شروع می کنم شما سعی کنید به جز بلاک کردن و تکرار می کنم
243
00:15:41,080 –> 00:15:46,030
قیمت اقدامات من فکر میکنم
244
00:15:46,030 –> 00:15:50,890
اینجا است، بنابراین بازرسی کلیک راست کنید و میتوانیم
245
00:15:50,890 –> 00:15:56,320
ببینیم که قیمت یک تگ span با قیمت شناسه است
246
00:15:56,320 –> 00:16:01,090
که جمعآوری میکنم، بنابراین بیایید آن را پیدا کنیم
247
00:16:01,090 –> 00:16:06,720
، امیدوارم ID آن باشد و در اینجا
248
00:16:06,720 –> 00:16:11,470
متغیر قیمت برابر است با سوپ پیدا کردن من به
249
00:16:11,470 –> 00:16:16,630
دنبال span هستم. برچسب با شناسه برابر با
250
00:16:16,630 –> 00:16:24,040
قیمت من در اینجا قیمت را برابر با یک
251
00:16:24,040 –> 00:16:28,780
رشته خالی جمع می کنم و می خواهم
252
00:16:28,780 –> 00:16:38,020
از قیمتی که تگ span گرفتیم چاپ کنم و اکنون
253
00:16:38,020 –> 00:16:42,010
می بینیم که قیمت
254
00:16:42,010 –> 00:16:45,250
متن تگ span است تا متن را دریافت کنم. من
255
00:16:45,250 –> 00:16:47,440
باید از یک ویژگی متنی سوپ
256
00:16:47,440 –> 00:16:54,370
شی نقطه متن استفاده کنم، بیایید دوباره آن را صدا
257
00:16:54,370 –> 00:16:59,760
کنیم، رشته را گرفتیم و گاهی رشته ها
258
00:16:59,760 –> 00:17:03,940
دارای فاصله و ابتدای
259
00:17:03,940 –> 00:17:07,089
رشته و انتهای آن هستند، بنابراین می خواهم از
260
00:17:07,089 –> 00:17:11,770
روش نوار برای خواندن فاصله های موجود در
261
00:17:11,770 –> 00:17:14,410
قسمت استفاده کنم. در پایان و در ابتدای این
262
00:17:14,410 –> 00:17:17,800
چیز نیز من می خواهم رشته را