در این مطلب، ویدئو آموزش Webscraping با پایتون – از پروکسی های رایگان در پروژه های Webscraping خود استفاده کنید با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:11:52
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,080 –> 00:00:01,920
چه خبر است همه به این
2
00:00:01,920 –> 00:00:03,919
کانال یوتیوب خوش آمدید امیدوارم حال همه شما
3
00:00:03,919 –> 00:00:04,480
خوب باشد
4
00:00:04,480 –> 00:00:06,879
و امروز در این ویدیو
5
00:00:06,879 –> 00:00:09,120
ما میخواهیم سری وب اسکرپینگ خود را در ویدیوی قبلی ادامه دهیم
6
00:00:09,120 –> 00:00:10,880
همانطور که همه میدانید به
7
00:00:10,880 –> 00:00:13,280
شما نشان دادم چگونه میتوانیم
8
00:00:13,280 –> 00:00:15,920
وبسایتهای بارگذاری شده پویا را با استفاده از پایتون خراش دهیم.
9
00:00:15,920 –> 00:00:16,640
بدون
10
00:00:16,640 –> 00:00:19,199
استفاده از کتابخانه سلنیوم و در این
11
00:00:19,199 –> 00:00:20,560
ویدیو می خواهیم ببینیم
12
00:00:20,560 –> 00:00:22,960
که چگونه می توانیم از پروکسی های رایگان در پروژه اسکراپینگ وب خود استفاده کنیم
13
00:00:22,960 –> 00:00:24,000
14
00:00:24,000 –> 00:00:26,240
و به شما نشان خواهم داد که
15
00:00:26,240 –> 00:00:28,640
پراکسی های رایگان را از کجا دریافت کنید و چگونه پراکسی های رایگان دریافت کنید و
16
00:00:28,640 –> 00:00:31,199
چگونه از آنها استفاده کنید اما قبل از آن. ما این ویدیو را شروع می کنیم
17
00:00:31,199 –> 00:00:32,800
، می خواهم در کانال من مشترک شوید،
18
00:00:32,800 –> 00:00:33,520
این
19
00:00:33,520 –> 00:00:36,000
باعث می شود که من برای ساختن این نوع ویدیوها انگیزه داشته باشم،
20
00:00:36,000 –> 00:00:37,920
بنابراین بدون اتلاف
21
00:00:37,920 –> 00:00:39,120
وقت بیشتر، بیایید
22
00:00:39,120 –> 00:00:45,580
مستقیماً وارد این ویدیو
23
00:00:45,580 –> 00:00:53,520
[موسیقی] شویم
24
00:00:53,520 –> 00:00:56,000
تا همانطور که می توانید روی صفحه من مشاهده کنید من در آن هستم.
25
00:00:56,000 –> 00:00:56,879
این
26
00:00:56,879 –> 00:01:00,000
صفحه github در واقع یک لیست پراکسی است
27
00:01:00,000 –> 00:01:03,199
که فکر می کنم هر روز آن را به روز می کنند و
28
00:01:03,199 –> 00:01:05,040
همه آنها پراکسی های رایگان هستند که می توانید از
29
00:01:05,040 –> 00:01:07,040
آنها در پروژه های خود در پروژه های برنامه نویسی وب خود استفاده کنید
30
00:01:07,040 –> 00:01:08,880
اما مشکل
31
00:01:08,880 –> 00:01:10,640
این پروکسی های رایگان این است که
32
00:01:10,640 –> 00:01:12,720
اگر ما یک لیست داشته باشیم t از صد پروکسی
33
00:01:12,720 –> 00:01:14,080
فقط فرض کنید
34
00:01:14,080 –> 00:01:16,960
شش یا ده یا بیست پروکسی
35
00:01:16,960 –> 00:01:17,840
کار می کنند، بنابراین
36
00:01:17,840 –> 00:01:20,880
حتی اگر لیست بزرگی از پراکسی ها داشته باشید
37
00:01:20,880 –> 00:01:23,119
تعداد کمی از آنها کار می کنند و این
38
00:01:23,119 –> 00:01:25,280
مشکل باید حل شود، بنابراین
39
00:01:25,280 –> 00:01:26,479
اگر لیستی از پراکسی ها داشته باشیم.
40
00:01:26,479 –> 00:01:28,479
از بین آنها شکست می خورند،
41
00:01:28,479 –> 00:01:30,799
ما باید آنها را فیلتر کنیم.
42
00:01:30,799 –> 00:01:32,880
43
00:01:32,880 –> 00:01:34,720
44
00:01:34,720 –> 00:01:36,799
45
00:01:36,799 –> 00:01:38,720
46
00:01:38,720 –> 00:01:40,720
یا میتوانیم
47
00:01:40,720 –> 00:01:42,720
ابتدا آنها را فیلتر کرده و در
48
00:01:42,720 –> 00:01:44,159
یک فایل ذخیره کنیم، سپس از آنها استفاده کنیم،
49
00:01:44,159 –> 00:01:46,320
اما با انجام این کار، اگر آنها را
50
00:01:46,320 –> 00:01:47,920
در یک فایل ذخیره کنیم، این پراکسیها
51
00:01:47,920 –> 00:01:51,040
در عرض چند روز
52
00:01:51,040 –> 00:01:52,720
از بین
53
00:01:52,720 –> 00:01:54,720
میروند و به هر حال بیفایده خواهند بود، بنابراین ما این کار را نمیکنیم. قرار است
54
00:01:54,720 –> 00:01:56,560
آنها را فیلتر کرده و در یک فایل ذخیره کنیم، به جای
55
00:01:56,560 –> 00:01:58,000
اینکه آنها را
56
00:01:58,000 –> 00:02:00,000
در زمان اجرا فیلتر کنیم، بیایید ببینیم چگونه می توانیم این کار را انجام دهیم،
57
00:02:00,000 –> 00:02:01,759
بنابراین اولین کاری که انجام می دهم این
58
00:02:01,759 –> 00:02:05,200
است که سعی می کنم تمام این پراکسی ها را پاک کنم.
59
00:02:05,200 –> 00:02:07,200
برای دانلود فایل،
60
00:02:07,200 –> 00:02:08,399
از درخواست
61
00:02:08,399 –> 00:02:11,360
برای خراش دادن همه این پروکسی ها استفاده می کنم من
62
00:02:11,360 –> 00:02:11,760
این
63
00:02:11,760 –> 00:02:14,080
پیوند را از اینجا کپی می کنم و به کد ویژوال استودیوی خود باز می گردم
64
00:02:14,080 –> 00:02:15,360
65
00:02:15,360 –> 00:02:18,160
و آن را در اینجا جای گذاری می کنم و
66
00:02:18,160 –> 00:02:19,599
آن را در یک
67
00:02:19,599 –> 00:02:22,560
آدرس اینترنتی زیر خط پراکسی متغیر ذخیره می کنم بنابراین اکنون آن را در آنجا ذخیره می
68
00:02:22,560 –> 00:02:24,800
کنیم و وارد می کنیم درخواستها
69
00:02:24,800 –> 00:02:27,120
و ماژولهای سوپ زیبا، بنابراین من
70
00:02:27,120 –> 00:02:30,319
درخواستهای واردات را میگویم و میگویم
71
00:02:30,319 –> 00:02:34,160
از bs4 واردات سوپ زیبا
72
00:02:34,160 –> 00:02:37,760
بهعنوان bs حالا بیایید شروع به خراش دادن
73
00:02:37,760 –> 00:02:40,000
همه آن پراکسیها کنیم، بنابراین اولین کاری که
74
00:02:40,000 –> 00:02:41,680
باید انجام دهیم این است که یک
75
00:02:41,680 –> 00:02:42,720
درخواست دریافت کنیم.
76
00:02:42,720 –> 00:02:46,519
url بنابراین من می گویم r برابر با
77
00:02:46,519 –> 00:02:49,360
requests.get
78
00:02:49,360 –> 00:02:52,720
آدرس زیر خط پراکسی است و سپس
79
00:02:52,720 –> 00:02:56,000
بیایید متن نقطه خود را چاپ کنیم تا ببینیم
80
00:02:56,000 –> 00:02:56,959
چه چیزی دریافت می کنیم، بنابراین
81
00:02:56,959 –> 00:02:59,840
اگر کد را اجرا کنیم می توانید ببینید
82
00:02:59,840 –> 00:03:01,920
محتوای صفحه را دریافت می
83
00:03:01,920 –> 00:03:04,400
کنیم، بله بسیار طولانی است. اما چیزی که ما به آن
84
00:03:04,400 –> 00:03:05,120
علاقه
85
00:03:05,120 –> 00:03:08,000
مندیم پروکسی است، بنابراین در اینجا ما
86
00:03:08,000 –> 00:03:08,959
پراکسی ها را داریم
87
00:03:08,959 –> 00:03:11,599
اما همه آنها در یک جدول ذخیره می شوند، بنابراین
88
00:03:11,599 –> 00:03:12,720
باید این عنصر td را پیدا کنیم
89
00:03:12,720 –> 00:03:15,360
که کلاسی از این
90
00:03:15,360 –> 00:03:15,840
چیز
91
00:03:15,840 –> 00:03:18,959
را دارد، بنابراین کاری که من انجام خواهم داد این است که
92
00:03:18,959 –> 00:03:21,440
بیایم در اینجا اجازه دهید آن را کوچکتر
93
00:03:21,440 –> 00:03:23,599
کنم، بنابراین من می آیم اینجا و می گویم
94
00:03:23,599 –> 00:03:26,959
سوپ برابر با bs است، در
95
00:03:26,959 –> 00:03:29,920
درخواست r می گذرم محتوای نقطهای و من از تجزیهکننده
96
00:03:29,920 –> 00:03:31,519
نقطهای html استفاده
97
00:03:31,519 –> 00:03:34,640
میکنم و سپس میگویم
98
00:03:34,640 –> 00:03:38,080
dot find underscore تمام چیزی که میخواهیم
99
00:03:38,080 –> 00:03:38,959
پیدا کنیم
100
00:03:38,959 –> 00:03:42,319
عنصر td است و یک کلاس از
101
00:03:42,319 –> 00:03:46,080
این چیزها دارد، بنابراین همه اینها را از اینجا کپی میکنم
102
00:03:46,080 –> 00:03:46,560
.
103
00:03:46,560 –> 00:03:48,720
و آن را در اینجا بچسبانید این خط کد
104
00:03:48,720 –> 00:03:50,560
در اینجا
105
00:03:50,560 –> 00:03:53,840
همه عناصر td را که این
106
00:03:53,840 –> 00:03:57,280
کلاس را دارند پیدا می کند، بنابراین ما لیستی از همه این
107
00:03:57,280 –> 00:03:58,080
عناصر را دریافت
108
00:03:58,080 –> 00:04:00,400
می کنیم که شبیه این هستند و همه
109
00:04:00,400 –> 00:04:01,120
در
110
00:04:01,120 –> 00:04:04,560
یک لیست ذخیره می شوند و اکنون باید در واقع آن را بگیریم.
111
00:04:04,560 –> 00:04:07,519
پراکسی و شماره پورت از این
112
00:04:07,519 –> 00:04:08,159
113
00:04:08,159 –> 00:04:10,640
عنصر یک راه ساده برای انجام این کار وجود دارد که من می گویم
114
00:04:10,640 –> 00:04:11,760
پراکسی
115
00:04:11,760 –> 00:04:13,920
ها برابر با درک لیست است و
116
00:04:13,920 –> 00:04:15,200
117
00:04:15,200 –> 00:04:18,720
متن نقطه پراکسی را برای پراکسی در
118
00:04:18,720 –> 00:04:21,600
سوپ می گویم بنابراین همانطور که قبلاً به شما گفتم سوپ
119
00:04:21,600 –> 00:04:23,600
حاوی همه این عناصر است. لیستی از
120
00:04:23,600 –> 00:04:25,280
همه این عناصر بنابراین ما در حال حلقه زدن
121
00:04:25,280 –> 00:04:26,560
از طریق همه آن عناصر هستیم و
122
00:04:26,560 –> 00:04:28,400
متن را از آنها می گیریم
123
00:04:28,400 –> 00:04:31,040
که این چیزی است و همانطور که می دانید
124
00:04:31,040 –> 00:04:32,400
این پروکسی است که اکنون در
125
00:04:32,400 –> 00:04:34,479
حال تلاش برای پاک کردن آن هستیم، اجازه دهید اگر اکنون پراکسی ها را چاپ کنم آن را امتحان کنیم.
126
00:04:34,479 –> 00:04:35,440
127
00:04:35,440 –> 00:04:38,320
و کد را اجرا کنید می توانید
128
00:04:38,320 –> 00:04:39,680
ببینید ما لیستی
129
00:04:39,680 –> 00:04:42,400
از پروکسی ها را دریافت کردیم بنابراین اینها همه پروکسی
130
00:04:42,400 –> 00:04:43,919
هایی هستند که در این صفحه داریم
131
00:04:43,919 –> 00:04:46,960
و اکنون آنها را اسکریپت داریم و
132
00:04:46,960 –> 00:04:48,960
آنها را در یک لیست ذخیره کرده ایم اکنون
133
00:04:48,960 –> 00:04:50,560
کاری که من انجام می دهم این است که
134
00:04:50,560 –> 00:04:53,680
در واقع یک تابع ایجاد می کنم و این
135
00:04:53,680 –> 00:04:55,440
بلوک کد را در داخل آن تابع ذخیره می کنم.
136
00:04:55,440 –> 00:04:56,800
من میگویم def
137
00:04:56,800 –> 00:05:00,479
پراکسیهای زیر خط را دریافت میکند و برمیگرداند،
138
00:05:00,479 –> 00:05:02,400
چاپ نمیشود،
139
00:05:02,400 –> 00:05:03,840
140
00:05:03,840 –> 00:05:07,039
اکنون
141
00:05:07,039 –> 00:05:08,960
142
00:05:08,960 –> 00:05:10,000
143
00:05:10,000 –> 00:05:13,039
پروکسیها را برمیگرداند.
144
00:05:13,039 –> 00:05:15,280
میخواهیم آن را در قالبی برگردانیم که
145
00:05:15,280 –> 00:05:18,560
ماژول درخواست بپذیرد،
146
00:05:18,560 –> 00:05:21,520
بنابراین بیایید یک تابع تعریف کنیم، یک
147
00:05:21,520 –> 00:05:24,080
پروکسی تصادفی دریافت کنیم، یک
148
00:05:24,080 –> 00:05:24,720
آرگومان میگیرد
149
00:05:24,720 –> 00:05:26,960
و آن لیستی از
150
00:05:26,960 –> 00:05:28,320
پراکسیها خواهد بود، بنابراین من میگویم
151
00:05:28,320 –> 00:05:31,280
پراکسیها و در اینجا ما میرویم. برای
152
00:05:31,280 –> 00:05:32,160
برگرداندن
153
00:05:32,160 –> 00:05:34,960
یک فرهنگ لغت و یک
154
00:05:34,960 –> 00:05:35,520
عنصر
155
00:05:35,520 –> 00:05:39,280
و یک کلید و آن کلید https است
156
00:05:39,280 –> 00:05:41,440
زیرا ما از پراکسی های https استفاده می کنیم
157
00:05:41,440 –> 00:05:43,520
و ارزش آن
158
00:05:43,520 –> 00:05:44,560
چیز قرار است
159
00:05:44,560 –> 00:05:46,960
پراکسی های انتخاب باشد، بنابراین اگر می دانید
160
00:05:46,960 –> 00:05:48,880
این انتخاب کجا بوده است. از من
161
00:05:48,880 –> 00:05:51,440
آمده است قبلاً آن را وارد کردهاید، این
162
00:05:51,440 –> 00:05:54,240
روشی از ماژول تصادفی است که به ما امکان میدهد
163
00:05:54,240 –> 00:05:54,639
164
00:05:54,639 –> 00:05:57,520
یک عنصر تصادفی را از یک لیست انتخاب
165
00:05:57,520 –> 00:05:58,639
کنیم، بنابراین سعی میکنیم