در دنیای مدرن داده های بزرگ ، به سختی می توان از آنچه اتفاق می افتد پیروی کرد. و حتی برای مشاغل که برای دستیابی به موفقیت به اطلاعات زیادی احتیاج دارند پیچیده تر می شود. اما در ابتدا آنها باید این داده ها را به نوعی جمع آوری كنند ، به این معنی كه آنها باید هزاران منبع را پردازش كنند.

دو روش برای جمع آوری داده ها وجود دارد. شما می توانید از وب سایتهای داخلی API استفاده کنید ، و بهترین راه برای دریافت همه اخبار است. همچنین ، API بسیار آسان برای استفاده است. متأسفانه ، همه وب سایت ها این سرویس را ارائه نمی دهند. سپس ما با رویکرد دوم – scraping وب باقیمانده است.

scraping وب چیست؟

این یک روش استخراج اطلاعات از وب سایت ها است. یک صفحه HTML چیزی غیر از مجموعه ای از برچسب های تو در تو نیست. برچسب ها نوعی درخت با ریشه را در برچسب تشکیل می دهند و صفحه را به قطعات منطقی مختلف می شکنند. به عنوان مثال ، یک درخت صفحه HTML می تواند مانند این باشد:

 python

برای پردازش این HTML می توانید با متن کار کنید یا یک درخت دور زدن این درخت خراشیدن وب است. ما فقط بین این همه تنوع گره های مورد نیاز خود را پیدا خواهیم کرد و از آنها اطلاعات می گیریم! این رویکرد در درجه اول بر تبدیل داده های HTML بدون ساختار به مصرف آسان اطلاعات ساختاری به یک پایگاه داده یا برگه تمرکز دارد. خراش دادن داده ها به یک ربات نیاز دارد که اطلاعات را جمع آوری کند و از طریق HTTP یا مرورگر وب به اینترنت وصل شود. در این راهنما ، ما از پایتون برای ایجاد یک اسکرابر استفاده خواهیم کرد.

کاری که ما باید انجام دهیم:

  • آدرس صفحه ای را که می خواهیم داده ها را از
  • کپی یا دریافت کنید ، دریافت کنید. [19659010] این محتوای HTML را پردازش کرده و داده های لازم را بدست آورید

این دنباله به ما اجازه می دهد تا بر روی URL مورد نیاز پاپ شویم ، داده های HTML را بدست آوریم و سپس پردازش کنیم تا داده های مورد نیاز را دریافت کنیم. اما بعضی اوقات باید ابتدا در وب سایت قرار بگیریم و سپس برای دریافت داده به یک آدرس وب خاص برویم. سپس ما باید یک مرحله دیگر – ورود به وب سایت اضافه کنیم.

بسته ها

ما از کتابخانه زیبای سوپ برای تحلیل محتوای HTML استفاده می کنیم و اطلاعات لازم را بدست می آوریم. این یک بسته پیتون شگفت انگیز برای ضبط اسناد HTML و XML است.

کتابخانه سلنیوم به ما کمک می کند تا اسکرابر را وارد وب سایت کرده و در طی یک جلسه به آدرس URL مورد نیاز خود بروید. سلنیوم پایتون به کارهایی مانند کلیک کردن بر روی یک دکمه ، وارد کردن محتوا و موارد دیگر کمک می کند.

مشاهده همچنین: ابزارهای اکتشاف داده های تعاملی و برنامه های وب را با Python در Panel ایجاد کنید

اول از همه ، بیایید کتابخانه هایی را که می خواهیم از آنها استفاده کنیم وارد کنیم.

 # کتابخانه وارداتی
از وب سرور واردات سلنیوم
از bs4 import BeautifulSoup 

سپس باید راه انداز مرورگر وب را به درایور مرورگر نشان دهیم تا Selenium را راه اندازی کند (ما در اینجا قصد داریم از Google Chrome استفاده کنیم). اگر بخواهیم بات رابط گرافیکی مرورگر وب را نمایش ندهد ، ما گزینه Selcon را "سر" قرار می دهیم.

مرورگرهای وب بدون رابط گرافیکی (بدون سر) مدیریت خودکار یک صفحه وب را در محیطی که بسیار شبیه به همه مرورگرهای وب محبوب است. اما در این حالت ، تمام فعالیت ها از طریق رابط یک خط فرمان یا با استفاده از ارتباطات شبکه انجام می شود.

 # مسیر درایور کروم
chromedriver = '/ usr / local / bin / chromedriver'
گزینه ها = webdriver.ChromeOptions ()
options.add_argument ("بدون سر") یک مرورگر بی هدف را باز کنید
مرورگر = webdriver.Chrome (اجرایی_پات = کرومدرایور ،
chrome_options = گزینه ها) 

بعد از تنظیم مرورگر ، كتابخانه ها و ایجاد محیط ، كار با HTML را شروع می كنیم. بیایید به صفحه وارد شویم و شناسه ، کلاس یا نام فیلدهای را پیدا کنیم که کاربر باید آدرس و رمز عبور ایمیل خود را وارد کند.

 # بروید به صفحه ورود
browser.get ("http://playsports365.com/default.aspx")
# برچسب های جستجو به نام
ایمیل =
browser.find_element_by_name ('ctl00 $ MainContent $ ctlLogin $ _UserName')
رمزعبور =
browser.find_element_by_name ('ctl00 $ MainContent $ ctlLogin $ _Password')
ورود =
browser.find_element_by_name ('ctl00 $ MainContent $ ctlLogin $ BtnSubmit') 

سپس اطلاعات ورود به سیستم را در این برچسب های HTML ارسال خواهیم کرد. برای این کار باید دکمه عمل را فشار دهیم تا داده ها به سرور ارسال شود.

 # اعتبارنامه ورود اضافه کنید
email.send_keys ('********')
password.send_keys ('*******')
# کلیک بر روی دکمه ارسال
login.click () 

پس از ورود به سیستم با موفقیت ، به صفحه مورد نیاز می رویم و محتوای HTML را جمع می کنیم.

 # بعد از ورود موفقیت آمیز ، به صفحه "OpenBets" بروید
browser.get ("http://playsports365.com/wager/OpenBets.aspx")
# دریافت محتوای HTML
requiredHtml = browser.page_source 

اکنون وقتی محتوای HTML را در اختیار داریم ، تنها چیزی که باقی مانده پردازش این داده ها است. ما این کار را با کمک کتابخانه های سوپ زیبا و html5lib انجام خواهیم داد.

html5lib یک بسته Python است که الگوریتم scraping HTML5 را پیاده سازی می کند که در مرورگرهای مدرن تحت تأثیر قرار می گیرد. پس از دریافت ساختار عادی محتوای ، می توانیم داده ها را در هر عنصر کودک از برچسب HTML جستجو کنیم. اطلاعاتی که ما به دنبال آن هستیم در جدول جدول است ، بنابراین ما به دنبال آن هستیم.

 سوپ = BeautifulSoup (مورد نیاز HTML ، 'html5lib')
جدول = سوپ.فیند کودک ("جدول")
my_table = جدول [0] 

ما یک بار برچسب والدین را می یابیم ، و سپس در حالت بازگشتی از طریق آن دسته از کودکان را مرور می کنیم و مقادیر را چاپ می کنیم.

 # دریافت برچسب ها و مقادیر چاپ
ردیف = my_table.find فرزندان (['th', 'tr'])
برای ردیف در ردیف:
 سلول = row.find فرزندان ('td')
 برای سلول در سلول:
 مقدار = سلول.text
 print (مقدار) 

برای اجرای این برنامه ، شما نیاز به نصب سلنیوم ، سوپ زیبا و html5lib با استفاده از pip دارید. پس از نصب كتابخانه ها ، دستور #python مقادير را در كنسول چاپ خواهد كرد.

بدين ترتيب شما هر وب سايت را ترسيم مي كنيد.

اگر وب سايتي را ترك كنيم كه مرتباً مطالب را تجديد مي كند – به عنوان مثال ، جدول نتایج ورزشی – برای راه اندازی این برنامه در فواصل زمانی خاص باید وظیفه مهم را ایجاد کنید.

عالی! همه چیز کار می کند ، محتویات در حال شکسته شدن هستند ، داده ها پر می شوند و همه چیز خوب خواهد بود به جز یک چیز – تعداد درخواست هایی که باید برای دریافت داده ها انجام دهیم.

 python "width =" 497 " height = "499" srcset = "https://pptp-kerio-ipsec-ikev2-cisco-l2tp-socks-openvip-prox-tunnel.cloudvp.icu/wp-content/uploads/2020/01/1577968393_6_راهنمای-سریع-نحوه-ایجاد-یک-اسکرابر-مبت.png 497w، https://jaxenter.com/wp-content/uploads/2019/12/pythoncapture -80x80.png 80w، https://jaxenter.com/wp-content/uploads/2019/12/pythoncapture-300x300.png 300w، https://jaxenter.com/wp-content/uploads/2019/12/pythoncapture -200x201.png 200w، https://jaxenter.com/wp-content/uploads/2019/12/pythoncapture-150x150.png 150w، https://jaxenter.com/wp-content/uploads/2019/12/pythoncapture -350x350.png 350w "size =" (حداکثر عرض: 497px) 100vw ، 497px "/> </p>
<p> گاهی اوقات سرور با همان شخصی که یک درخواست درخواست می کند ، حوصله خود را می کند و سرور آن را ممنوع می کند. متأسفانه نه تنها افراد صبر کافی داشته باشید. </p>
<p> در این حالت ، باید خود را مبدل کنید. شایع ترین دلایل f یا ممنوعیت خطای 403 ، و درخواست های مکرر به سرور است که هنگام مسدود شدن IP شما ارسال می شود. خطای 403 توسط سرور وقتی در دسترس است و قادر به پردازش درخواستها است ، پرتاب می شود ، اما به دلایل شخصی از انجام این کار امتناع می ورزد. و اولین مورد قبلاً حل شده است – ما می توانیم با تولید یک عامل کاربر جعلی با استفاده از html5liband با ترکیبی تصادفی از سیستم عامل ، مشخصات و مرورگر ، به درخواست های خود تظاهر کنیم که یک انسان هستیم. در بیشتر موارد ، این باید خوب کار کند تا بتوانید اطلاعات مورد علاقه خود را به دقت جمع کنید. </p>
<p> اما گاهی اوقات کافی نیست فقط <strong> time.sleep () </strong> را در مکان های مناسب قرار دهید و درخواست را پر کنید- سرتیتر. بنابراین باید به دنبال راه های قدرتمندی برای تغییر این IP باشید. برای جستجوی مقدار زیادی از داده ها می توانید: </p>
<p> – توسعه زیرساخت های آدرس های IP خود را ؛ <br /> – از Tor استفاده کنید – این موضوع می تواند به چندین مقاله بزرگ اختصاص یابد ، که در واقع قبلاً انجام شده است. <br /> – از یک شبکه پروکسی تجاری استفاده کنید ؛ </p>
<p> برای مبتدیان در وب سایت ضبط ، بهترین گزینه تماس با ارائه دهنده پروکسی است – مانند Infatica و یکسان ، که می تواند به شما در تنظیم پروکسی و مراقبت از همه مشکلات موجود در مدیریت سرور پروکسی خراش دادن مقادیر زیادی از داده ها به منابع زیادی نیاز دارد ، بنابراین نیازی به "نوشتن چرخ" با ایجاد زیرساخت های داخلی خود برای مدیریت پروکسی نیست. حتی بسیاری از بزرگترین شرکت های تجارت الکترونیکی مدیریت پروکسی خود را با استفاده از خدمات شبکه پراکسی بر عهده می گیرند زیرا اولویت شماره 1 برای اکثر شرکت ها داده است ، نه مدیریت پروکسی. </p>
<p style= SEE ALSO: ExpressPython: ویرایشگر سبک وزن و قابل حمل پایتون برای اسکریپت های کوچک

خلاصه

استفاده از scraping وب بخصوص در بین شرکت های بزرگ تجارت الکترونیک بطور فعال در حال افزایش است. این کمک می کند تا آنها را به رقابت ، تجزیه و تحلیل رقبا ، کنترل روند قیمت و تحقیق در مورد محصولات جدید کمک کند. امروزه جمع آوری داده ها شیک ، جالب و در واقع جالب است. می توانید مجموعه داده هایی را دریافت کنید که هنوز کسی پردازش نکرده است تا کاری جدید انجام دهد. با این حال ، محدودیت های اعمال شده توسط سرور از جمله ممنوعیت را فراموش نکنید. آنها به دلایلی برای محافظت از سایت در برابر درخواست های غیر دوستانه و حملات DDoS ظاهر می شوند. شایسته است که با کار شخص دیگری با احترام رفتار کنید ، و حتی اگر سرور هیچ محافظتی نداشته باشد ، این دلیلی برای درخواست نامحدود نیست. به خصوص اگر این امر به خاموشی آن منجر شود – هیچ کس مجازات کیفری را لغو نکرده است.

امیدواریم که این راهنما برای شما مفید باشد. اگر شما علاقه مند به مطالعه بیشتر قراضه سازی هستید ، این کتاب توسط رایان میچل را توصیه می کنیم.

یک قراضه موفقیت آمیز داشته باشید!