در این مطلب، ویدئو Scraping وب با استفاده از XPath و Python با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:17:51
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,740 –> 00:00:03,300
سلام بچه ها به یک پایتونیستای رقیب خوش آمدید
2
00:00:03,300 –> 00:00:05,339
و در این ویدیوی خاص من
3
00:00:05,339 –> 00:00:07,140
نشان خواهم داد که چگونه می توانید از مفهوم
4
00:00:07,140 –> 00:00:09,630
XPath برای خراش دادن صفحات وب با استفاده از پایتون استفاده کنید
5
00:00:09,630 –> 00:00:11,790
و همچنین موقعیت های خاصی را به شما نشان خواهم داد
6
00:00:11,790 –> 00:00:13,860
که در آنها ممکن است
7
00:00:13,860 –> 00:00:15,870
واقعاً به این مفهوم خاص نیاز داشته باشیم.
8
00:00:15,870 –> 00:00:18,119
زیرا ممکن است به ما در صرفه جویی
9
00:00:18,119 –> 00:00:20,550
در زمان و تلاش زیادی در حین خراش
10
00:00:20,550 –> 00:00:22,230
دادن صفحات وب کمک کند، بنابراین بله، بنابراین این همان کاری است که
11
00:00:22,230 –> 00:00:23,160
ما در این ویدیوی خاص انجام می دهیم،
12
00:00:23,160 –> 00:00:26,630
بنابراین بدون هیچ تاخیری اجازه دهید آن را اجرا کنیم،
13
00:00:26,630 –> 00:00:29,519
بنابراین اجازه دهید ابتدا کمی در مورد XPath صحبت کنیم.
14
00:00:29,519 –> 00:00:32,969
بنابراین XPath مخفف زبان مسیر xml
15
00:00:32,969 –> 00:00:35,489
است که در واقع یک زبان پرس و جو
16
00:00:35,489 –> 00:00:37,950
برای انتخاب گره ها از هر
17
00:00:37,950 –> 00:00:40,320
سند XML است، اگر
18
00:00:40,320 –> 00:00:42,540
در مورد سند XML نمی دانید، در اینجا
19
00:00:42,540 –> 00:00:43,290
چیزی برای شما وجود دارد که
20
00:00:43,290 –> 00:00:46,320
XML مخفف زبان نشانه گذاری توسعه پذیر
21
00:00:46,320 –> 00:00:48,780
است که کمی شبیه نشانه گذاری فرامتن شما است.
22
00:00:48,780 –> 00:00:51,059
زبانی که HTML است،
23
00:00:51,059 –> 00:00:53,190
اما تفاوت بسیار مشخصی بین این دو وجود دارد.
24
00:00:53,190 –> 00:00:56,010
25
00:00:56,010 –> 00:00:57,780
26
00:00:57,780 –> 00:01:00,210
27
00:01:00,210 –> 00:01:02,039
شما یک تگ پاراگراف دارید،
28
00:01:02,039 –> 00:01:03,809
بنابراین همه آن تگ ها
29
00:01:03,809 –> 00:01:06,479
برای مرورگر شما معنای خاصی دارند، اما برای
30
00:01:06,479 –> 00:01:09,930
XML چنین چیزی وجود ندارد که بتوانید
31
00:01:09,930 –> 00:01:12,420
هر نامی برای برچسب های خود بگذارید و
32
00:01:12,420 –> 00:01:14,610
در آنجا معنای خاصی ندارند،
33
00:01:14,610 –> 00:01:16,530
بنابراین هدف طراحی اسناد XML است.
34
00:01:16,530 –> 00:01:18,720
در واقع این است که آنها بر
35
00:01:18,720 –> 00:01:20,759
سادگی، عمومیت و قابلیت استفاده
36
00:01:20,759 –> 00:01:23,189
در سراسر اینترنت تأکید می کنند، به همین دلیل است که در آنجا می
37
00:01:23,189 –> 00:01:26,580
توانید از هر نامی برای برچسب های خود استفاده کنید و
38
00:01:26,580 –> 00:01:29,540
Mel بعدی امروزه به طور کلی برای
39
00:01:29,540 –> 00:01:32,880
انتقال داده ها از یک وب
40
00:01:32,880 –> 00:01:34,470
سرویس به سرویس دیگر استفاده می شود به طوری که یکی از
41
00:01:34,470 –> 00:01:36,540
کاربردهای اصلی است. از آن پس اکنون بازگشت به
42
00:01:36,540 –> 00:01:41,340
XPath XPath یک زبان پرس و جو برای
43
00:01:41,340 –> 00:01:43,500
اسناد XML است و نکته خاصی که در اینجا باید به آن توجه
44
00:01:43,500 –> 00:01:45,180
کرد این است که برای انتخاب
45
00:01:45,180 –> 00:01:47,189
گره ها استفاده می شود اکنون ممکن است فکر کنید که
46
00:01:47,189 –> 00:01:48,479
این گره ها چه هستند
47
00:01:48,479 –> 00:01:51,149
که این ترمینال گره درست است در واقع خیلی خوب است.
48
00:01:51,149 –> 00:01:53,640
اکنون می توانید به هر
49
00:01:53,640 –> 00:01:56,219
سند XML یا حتی هر سند HTML مانند
50
00:01:56,219 –> 00:01:57,960
یک درخت فکر کنید، چرا من می گویم که به این
51
00:01:57,960 –> 00:01:59,549
دلیل است که اگر سعی کنید این
52
00:01:59,549 –> 00:02:02,159
سند XML خاص را ببینید، برچسبی
53
00:02:02,159 –> 00:02:03,990
به نام پایگاه داده فیلم در w دارید. شما
54
00:02:03,990 –> 00:02:06,719
چندین تگ فیلم دارید، سپس در هر
55
00:02:06,719 –> 00:02:08,788
فیلم یک تگ عنوان دارید، یک تگ
56
00:02:08,788 –> 00:02:11,219
کارگردانی شده توسط برچسب و غیره، بنابراین به این ترتیب
57
00:02:11,219 –> 00:02:13,709
ما یک ساختار تودرتو ایجاد می کنیم و
58
00:02:13,709 –> 00:02:15,900
اگر سعی کنید آن را یک درخت تجسم کنید،
59
00:02:15,900 –> 00:02:18,329
می توانیم یک پایگاه داده فیلم داشته باشیم. برچسبی که در آن
60
00:02:18,329 –> 00:02:20,310
می توانیم در هر فیلم چندین فیلم
61
00:02:20,310 –> 00:02:22,409
داشته باشیم که یک سال عنوان کارگردانی آن را داریم
62
00:02:22,409 –> 00:02:24,569
و به همین ترتیب فرض کنید در گروه
63
00:02:24,569 –> 00:02:26,400
بازیگران چندین بازیگر داریم که نام و
64
00:02:26,400 –> 00:02:28,739
نام خانوادگی آنها برچسب های متفاوتی در داخل
65
00:02:28,739 –> 00:02:30,540
هر بازیگر دارد تا بتوانیم به آن فکر کنیم.
66
00:02:30,540 –> 00:02:32,430
مانند بازیگران، بازیگری
67
00:02:32,430 –> 00:02:33,720
داریم که در آن نام و
68
00:02:33,720 –> 00:02:38,489
نام خانوادگی درست است، بنابراین این تودرتوی تگ ها
69
00:02:38,489 –> 00:02:41,099
به شما امکان می دهد اسناد اسناد
70
00:02:41,099 –> 00:02:43,859
XML یا اسناد HTML را مانند
71
00:02:43,859 –> 00:02:46,769
درختان تجسم کنید و به همین دلیل است
72
00:02:46,769 –> 00:02:48,989
که مفهوم گره ها را داریم. در درختها درست است،
73
00:02:48,989 –> 00:02:51,959
بنابراین همه این تگها همه این عناصر برچسب
74
00:02:51,959 –> 00:02:54,359
در واقع گرههای درخت شما هستند، بنابراین
75
00:02:54,359 –> 00:02:56,220
آنچه در اینجا با یادداشتها به آن اشاره میکنیم
76
00:02:56,220 –> 00:02:58,650
همان یادداشتهایی است که در
77
00:02:58,650 –> 00:03:01,859
سند XML خود دارید وقتی به آن مانند یک درخت فکر میکنید،
78
00:03:01,859 –> 00:03:06,540
بنابراین چیزی در اینجاست. هفتم است در HTML همچنین
79
00:03:06,540 –> 00:03:09,180
می توان مانند یک درخت تجسم کرد و می تواند
80
00:03:09,180 –> 00:03:12,810
مانند یک درخت تجزیه شود و سپس می توانیم
81
00:03:12,810 –> 00:03:15,510
با استفاده از هر کتابخانه ای مانند
82
00:03:15,510 –> 00:03:17,519
beautifulsoup یا هر کتابخانه دیگری به درستی
83
00:03:17,519 –> 00:03:20,040
آن را بررسی کنیم، بنابراین فرض کنید شما یک تگ بدن دارید
84
00:03:20,040 –> 00:03:21,299
که در آن چندین ناشنوای شما وجود دارد. می توانید
85
00:03:21,299 –> 00:03:23,190
آن را به این شکل در بدنه تجسم کنید که
86
00:03:23,190 –> 00:03:24,810
نوارهای متعدد خود را اکنون در ابتدا تجسم کنید، اگر فرض کنید
87
00:03:24,810 –> 00:03:27,419
h1 P P و H هستند، بنابراین می توانید آن را اینگونه تجسم
88
00:03:27,419 –> 00:03:29,040
کنید، بگذارید در EV دوم
89
00:03:29,040 –> 00:03:31,440
یک تگ UL دارید که در آن چندین
90
00:03:31,440 –> 00:03:33,150
تگ Li دارید تا بتوانید تجسم کنید. مانند یک
91
00:03:33,150 –> 00:03:36,750
درخت به همین ترتیب، بله، بنابراین
92
00:03:36,750 –> 00:03:38,970
اسناد HTML یا اسناد XML همه
93
00:03:38,970 –> 00:03:40,859
آنها را می توان مانند یک درخت درک کرد و بخش های
94
00:03:40,859 –> 00:03:42,959
XML در متن را می توان برای
95
00:03:42,959 –> 00:03:45,659
پرس و جو و انتخاب برخی
96
00:03:45,659 –> 00:03:48,150
گره های خاص که از الگوی مشخص شده
97
00:03:48,150 –> 00:03:50,879
توسط سینتکس XPath پیروی می کنند استفاده کرد. برای انتخاب چند
98
00:03:50,879 –> 00:03:53,010
گره خاص به طوری که مفهوم
99
00:03:53,010 –> 00:03:55,979
پشت XPath است و حالا اجازه دهید
100
00:03:55,979 –> 00:03:58,709
چند مثال به شما نشان دهم تا بتوانیم
101
00:03:58,709 –> 00:04:01,079
نحو تخصصی را کمی درک کنیم، بنابراین
102
00:04:01,079 –> 00:04:02,549
قصد نداریم جزئیات زیادی را در مورد
103
00:04:02,549 –> 00:04:05,159
متخصصان در خود متن بیان کنیم، زیرا در این مقاله
104
00:04:05,159 –> 00:04:07,620
هدف اصلی ما این است که یاد بگیریم چگونه
105
00:04:07,620 –> 00:04:11,939
از XPath برای اسکرپینگ وب درست استفاده کنیم، بنابراین اجازه دهید
106
00:04:11,939 –> 00:04:13,370
من فقط یک توضیح بسیار مختصر
107
00:04:13,370 –> 00:04:16,529
در مورد نحو XPath ارائه
108
00:04:16,529 –> 00:04:19,409
دهم، بنابراین فرض کنید من یک سند XML دارم
109
00:04:19,409 –> 00:04:21,839
که در آن این کدی است که من دارم. کتابی
110
00:04:21,839 –> 00:04:22,330
111
00:04:22,330 –> 00:04:24,159
برای هدف قرار دادن مسیری داشته باشم که در آن
112
00:04:24,159 –> 00:04:27,129
چندین برچسب کتاب دارم که در آن عنوان
113
00:04:27,129 –> 00:04:29,289
و برچسب قیمت مانند این است، بنابراین
114
00:04:29,289 –> 00:04:31,569
این یک وبسایت به نام کد
115
00:04:31,569 –> 00:04:34,210
زیباسازی نقطهای org اسلش XPath تستر است
116
00:04:34,210 –> 00:04:37,479
که در آن من این XML و XPath را آزمایش میکنم.
117
00:04:37,479 –> 00:04:41,110
بنابراین چیزی که وجود دارد این است که
118
00:04:41,110 –> 00:04:43,120
شما فقط می توانید اسلش را قرار دهید که به این معنی است
119
00:04:43,120 –> 00:04:45,129
که می خواهید از ریشه
120
00:04:45,129 –> 00:04:47,860
درخت خود جستجو کنید و من کتابفروشی را انجام می دهم پس
121
00:04:47,860 –> 00:04:49,330
کاری که انجام می دهد این است که
122
00:04:49,330 –> 00:04:53,020
از ریشه برای کتابفروشی جستجو می کند بنابراین ما
123
00:04:53,020 –> 00:04:54,550
داریم هر کتابی را از جاده سفارش دهید بله،
124
00:04:54,550 –> 00:04:56,830
ما یک برچسب کتابفروشی داریم، به همین دلیل است که اگر
125
00:04:56,830 –> 00:04:59,199
من فقط XPath را آزمایش کنم، کتابفروشی کامل را دریافت می کنم،
126
00:04:59,199 –> 00:05:01,419
بگذارید بگوییم در
127
00:05:01,419 –> 00:05:03,849
کتابفروشی من می خواهم تمام کتاب
128
00:05:03,849 –> 00:05:05,860
هایی را که داریم تهیه کنم، بنابراین شما اسلش را انجام دهید.
129
00:05:05,860 –> 00:05:10,389
کتاب پس بیایید این XPath را آزمایش کنیم پس
130
00:05:10,389 –> 00:05:11,620
نگاه کنید ما در حال دریافت همه
131
00:05:11,620 –> 00:05:14,050
کتابهای داخل کتابفروشی هستیم، فرض
132
00:05:14,050 –> 00:05:16,810
کنید میخواهید فقط آن کتابی را بگیرید که شناسه
133
00:05:16,810 –> 00:05:19,870
آن فرضاً دو است، بنابراین کاری که
134
00:05:19,870 –> 00:05:22,330
در اینجا انجام میدهید این است که فقط یک
135
00:05:22,330 –> 00:05:25,000
پرانتز قرار دهید که در آن
136
00:05:25,000 –> 00:05:27,940
با نرخ قرار دهید. شناسه برابر با دو است، بنابراین آنچه من در
137
00:05:27,940 –> 00:05:29,620
اینجا می گویم این است که وقتی شما
138
00:05:29,620 –> 00:05:31,900
در نرخ و یک نام
139
00:05:31,900 –> 00:05:32,830
140
00:05:32,830 –> 00:05:35,110
مشخصه وارد می کنید، در این مورد به یک ویژگی خاص در داخل برچسب کتاب خود اشاره می کنید
141
00:05:35,110 –> 00:05:37,360
و می گویید
142
00:05:37,360 –> 00:05:40,240
که همه آن کتاب را پیدا کنید. تگ هایی که ایده در آنها وجود
143
00:05:40,240 –> 00:05:42,009
دارد – پس اجازه دهید ببینیم آیا
144
00:05:42,009 –> 00:05:45,490
عنصر کتاب را با شناسه دریافت می کنیم – یا نه آنقدر
145
00:05:45,490 –> 00:05:47,349
XPath را آزمایش می کنیم و نگاه می کنیم
146
00:05:47,349 –> 00:05:49,960
که فقط کتابی را دریافت می کنیم که شناسه آن است – حالا
147
00:05:49,960 –> 00:05:51,759
فرض کنید می خواهم فقط قیمت را دریافت کنم.
148
00:05:51,759 –> 00:05:54,940
از آن کتابی که شناسه آن است – بنابراین من
149
00:05:54,940 –> 00:05:58,479
به سادگی می توانم قیمت اسلش را انجام دهم و اجازه دهید فقط
150
00:05:58,479 –> 00:06:00,400
XPath را تست کنم و ببینم که
151
00:06:00,400 –> 00:06:02,229
من فقط قیمت را دریافت می کنم بنابراین
152
00:06:02,229 –> 00:06:05,409
واقعاً XPath اینگونه کار می کند و اگر می خواهید
153
00:06:05,409 –> 00:06:07,120
این را با جزئیات بیشتری یاد بگیرید. سپس
154
00:06:07,120 –> 00:06:09,370
می توانید به این پیوند خاص
155
00:06:09,370 –> 00:06:12,729
که نحو تخصصی o است بروید n w3schools آرام است و
156
00:06:12,729 –> 00:06:14,379
میتوانید این آموزش خاص را طی کنید
157
00:06:14,379 –> 00:06:17,259
تا
158
00:06:17,259 –> 00:06:19,629
با کمی جزئیات بیشتر در مورد نحو متخصص بدانید، بنابراین بله،
159
00:06:19,629 –> 00:06:21,460
بنابراین همه چیز در مورد XPath است که ما باید
160
00:06:21,460 –> 00:06:24,610
بدانیم تا بتوانیم وب را
161
00:06:24,610 –> 00:06:27,039
روی آن پیادهسازی کنیم، بنابراین بیایید با وب شروع کنیم.
162
00:06:27,039 –> 00:06:30,310
فقط برای مثال
163
00:06:30,310 –> 00:06:31,029
164
00:06:31,029 –> 00:06:32,130
من می خواهم با این
165
00:06:32,130 –> 00:06:35,120
صفحه وب خاص که یک صفحه ویکی پدیا است
166
00:06:35,120 –> 00:06:37,100
که طرح کلی دنیای سینمایی
167
00:06:37,100 –> 00:06:39,139
مارول است بروم، در واقع
168
00:06:39,139 –> 00:06:41,300
چند ساعت پیش داشتم این صفحه را مرور می
169
00:06:41,300 –> 00:06:43,310
کردم که فکر کردم از آن برای نشان دادن شما استفاده کنم.
170
00:06:43,310 –> 00:06:45,560
نسخه ی نمایشی متخصص، بنابراین موضوع این است که در این
171
00:06:45,560 –> 00:06:48,260
صفحه این جدول از
172
00:06:48,260 –> 00:06:50,150
فیلم های داستانی دنیای سینمایی مارول وجود دارد،
173
00:06:50,150 –> 00:06:53,150
بنابراین چیزی که می خواستم انجام دهم این بود که
174
00:06:53,150 –> 00:06:54,889
می خواستم لیست تمام
175
00:06:54,889 –> 00:06:57,590
پیوندهای صفحه ویکی پدیا این
176
00:06:57,590 –> 00:06:59,810
فیلم ها را دریافت کنم. به عنوان مثال، این اولین
177
00:06:59,810 –> 00:07:01,490
ستون در ستون اول است،
178
00:07:01,490 –> 00:07:04,220
لیستی از تمام فیلم ها وجود دارد، بنابراین برای Ironman
179
00:07:04,220 –> 00:07:07,340
در واقع پیوندی به
180
00:07:07,340 –> 00:07:08,960
صفحه ویکی پدیا فیلم Ironman 2008 است، بنابراین من می خواستم
181
00:07:08,960 –> 00:07:10,880
این پیوند خاص را دریافت کنم. من میخواهم
182
00:07:10,880 –> 00:07:13,160
این پیوند را داشته باشید، به همین ترتیب، من میخواهم
183
00:07:13,160 –> 00:07:14,690
اولین انتقامجوی کاپیتان آمریکا
184
00:07:14,690 –> 00:07:16,760
و غیره را دریافت کنم، بنابراین میخواستم تمام
185
00:07:16,760 –> 00:07:19,460
پیوندهای ستون اول را دریافت کنم، بنابراین این
186
00:07:19,460 –> 00:07:22,430
هدف اصلی من برای حذف وب از
187
00:07:22,430 –> 00:07:24,590
این صفحه خاص بود. این است که من
188
00:07:24,590 –> 00:07:26,210
میتوانم از سوپ زیبا برای انجام
189
00:07:26,210 –> 00:07:29,600
درست آن استفاده کنم، اما
190
00:07:29,600 –> 00:07:31,940
راه سادهتر و فشردهتری برای انجام همان کار با
191
00:07:31,940 –> 00:07:34,190
استفاده از مفهوم XPath وجود دارد و به
192
00:07:34,190 –> 00:07:36,590
همین دلیل است که ما این ویدیو را درست داریم، بنابراین بیایید
193
00:07:36,590 –> 00:07:38,270
ببینیم چگونه میتوانند از مفهوم
194
00:07:38,270 –> 00:07:41,570
XPath استفاده کنند. در اینجا برای انجام خراش دادن
195
00:07:41,570 –> 00:07:44,150
تنها ستون اول هر جدول داده شده،
196
00:07:44,150 –> 00:07:46,039
بنابراین فکر می کنم این نقطه شروع خوبی خواهد بود،
197
00:07:46,039 –> 00:07:49,970
بنابراین این بازرس وب برای
198
00:07:49,970 –> 00:07:51,680
بازرسی عناصر مختلف
199
00:07:51,680 –> 00:07:53,930
این صفحه وب خاص است که می توانید
200
00:07:53,930 –> 00:07:56,240
با انجام ctrl shift I یا شما آن را باز کنید. فقط می توانید
201
00:07:56,240 –> 00:07:58,400
روی Inspect در مرورگر خود کلیک راست کرده و بر روی Inspect کلیک کنید،
202
00:07:58,400 –> 00:08:00,530
بنابراین پس از انجام این کار، اکنون
203
00:08:00,530 –> 00:08:03,380
باید به
204
00:08:03,380 –> 00:08:05,060
عنصر خاصی که به دنبال آن هستید بروید، بنابراین می
205
00:08:05,060 –> 00:08:06,500
توانید برای انتخاب یک عنصر اینجا را کلیک کنید
206
00:08:06,500 –> 00:08:09,410
و اکنون می توانید به th بروید. در عنصر خاص،
207
00:08:09,410 –> 00:08:11,600
بنابراین بیایید بگوییم Ironman، بنابراین این
208
00:08:11,600 –> 00:08:14,060
کد HTML برای این
209
00:08:14,060 –> 00:08:16,820
عنصر خاص است، خوب، بنابراین اکنون آنچه من می خواهم این است که
210
00:08:16,820 –> 00:08:19,220
می خواهم این عنصر را در درخت کامل HTML خود جستجو کنم،
211
00:08:19,220 –> 00:08:23,360
می توانید ببینید
212
00:08:23,360 –> 00:08:25,100
تا بتوانیم از مفهوم XPath استفاده کنیم.
213
00:08:25,100 –> 00:08:27,500
در اینجا، بنابراین کاری که می توانید انجام دهید این است که فقط
214
00:08:27,500 –> 00:08:29,840
اینجا را کلیک کنید و سپس به کپی کردن بروید
215
00:08:29,840 –> 00:08:34,099
و سپس روی کپی