{"id":923136,"date":"2024-06-06T12:46:31","date_gmt":"2024-06-06T12:46:31","guid":{"rendered":"https:\/\/proxyelite.info\/?p=923136"},"modified":"2025-06-04T03:03:34","modified_gmt":"2025-06-04T03:03:34","slug":"web-scraping-with-python-and-beautifulsoup-how-to-do-it-easily","status":"publish","type":"post","link":"https:\/\/proxyelite.info\/tr\/web-scraping-with-python-and-beautifulsoup-how-to-do-it-easily\/","title":{"rendered":"Python ve BeautifulSoup ile Web Scraping: Kolayca Nas\u0131l Yap\u0131l\u0131r?"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Web kaz\u0131ma, web sitelerinden bilgi \u00e7\u0131karmak i\u00e7in \u00f6nemli bir tekniktir. Python ve BeautifulSoup ile verileri nas\u0131l kaz\u0131yaca\u011f\u0131n\u0131z\u0131 \u00f6\u011frenmek istiyorsan\u0131z bu k\u0131lavuz, s\u00fcre\u00e7 boyunca size ad\u0131m ad\u0131m yol g\u00f6sterecektir. Bu makalenin sonunda birden fazla sayfay\u0131 nas\u0131l kaz\u0131yaca\u011f\u0131n\u0131z\u0131, dinamik i\u00e7eri\u011fi nas\u0131l y\u00f6netece\u011finizi ve nas\u0131l kullanaca\u011f\u0131n\u0131z\u0131 \u00f6\u011freneceksiniz. <a href=\"https:\/\/proxyelite.info\/tr\/solutions\/proxies-for-web-scraping\/\" data-type=\"link\" data-id=\"https:\/\/proxyelite.info\/solutions\/proxies-for-web-scraping\/\">proxy sunucular\u0131<\/a> IP adresinizin a\u00e7\u0131\u011fa \u00e7\u0131kmas\u0131n\u0131 \u00f6nlemek i\u00e7in. Hemen ba\u015flayal\u0131m!<\/p>\n\n\n\n<div class=\"wp-block-rank-math-toc-block\" id=\"rank-math-toc\"><h2>\u0130\u00e7indekiler<\/h2><nav><div><div><a href=\"#1-introduction-to-web-scraping\">1. Web Scraping&#039;e Giri\u015f<\/a><\/div><div><a href=\"#2-setting-up-your-environment\">2. Ortam\u0131n\u0131z\u0131 Kurmak<\/a><\/div><div><a href=\"#3-scraping-a-website-with-beautiful-soup\">3. BeautifulSoup ile Bir Web Sitesini Kaz\u0131mak<\/a><div><div><a href=\"#importing-libraries\">K\u00fct\u00fcphaneleri \u0130\u00e7e Aktarma<\/a><\/div><div><a href=\"#fetching-the-web-page\">Web Sayfas\u0131n\u0131 Getirmek<\/a><\/div><\/div><\/div><div><a href=\"#4-handling-multiple-pages\">4. Birden Fazla Sayfay\u0131 \u0130\u015fleme<\/a><div><div><a href=\"#looping-through-pages\">Sayfalar Aras\u0131nda D\u00f6ng\u00fc<\/a><\/div><\/div><\/div><div><a href=\"#5-using-proxies-to-avoid-ip-bans\">5. IP Yasaklar\u0131ndan Ka\u00e7\u0131nmak i\u00e7in Proxy Kullanmak<\/a><div><div><a href=\"#setting-up-a-proxy\">Proxy Kurulumu<\/a><\/div><\/div><\/div><div><a href=\"#6-storing-data-in-csv-and-excel-formats\">6. Verileri CSV ve Excel Formatlar\u0131nda Saklamak<\/a><div><div><a href=\"#saving-data-to-csv\">Verileri CSV&#039;ye Kaydetme<\/a><\/div><div><a href=\"#saving-data-to-excel\">Verileri Excel&#039;e Kaydetmek<\/a><\/div><div><a href=\"#sample-table-of-scraped-data\">Al\u0131nm\u0131\u015f Verilerin \u00d6rnek Tablosu<\/a><\/div><\/div><\/div><div><a href=\"#7-conclusion\">7. Karar<\/a><\/div><\/div><\/nav><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"1-introduction-to-web-scraping\">1. Web Scraping&#039;e Giri\u015f<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Web kaz\u0131ma, otomatik komut dosyalar\u0131 kullanarak web sitelerinden veri \u00e7\u0131karmay\u0131 i\u00e7erir. Bu teknik, veri analizi, fiyat izleme ve i\u00e7erik toplama gibi \u00e7e\u015fitli ama\u00e7lar i\u00e7in yayg\u0131n olarak kullan\u0131lmaktad\u0131r. Python, BeautifulSoup ve \u0130stekler gibi g\u00fc\u00e7l\u00fc k\u00fct\u00fcphaneleriyle web kaz\u0131may\u0131 basit ve verimli hale getirir.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"2-setting-up-your-environment\">2. Ortam\u0131n\u0131z\u0131 Kurmak<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kaz\u0131maya ba\u015flamadan \u00f6nce geli\u015ftirme ortam\u0131m\u0131z\u0131 kurmam\u0131z gerekiyor. Bu, gerekli k\u00fct\u00fcphanelerin kurulmas\u0131n\u0131 i\u00e7erir. Bunu nas\u0131l yapabilece\u011finiz a\u015fa\u011f\u0131da a\u00e7\u0131klanm\u0131\u015ft\u0131r:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code data-no-translation=\"\">pip install requests beautifulsoup4 pandas<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Bu k\u00fct\u00fcphaneler \u00f6nemlidir:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u0130stekler<\/strong>: Web sayfalar\u0131n\u0131n i\u00e7eri\u011fini getirmek i\u00e7in.<\/li>\n\n\n\n<li><strong>G\u00fczel\u00c7orba<\/strong>: HTML belgelerinden verileri ayr\u0131\u015ft\u0131rmak ve \u00e7\u0131karmak i\u00e7in.<\/li>\n\n\n\n<li><strong>Pandalar<\/strong>: Verileri depolamak ve i\u015flemek i\u00e7in.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"3-scraping-a-website-with-beautiful-soup\">3. BeautifulSoup ile Bir Web Sitesini Kaz\u0131mak<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">K\u00fct\u00fcphaneleri kurduktan sonra kaz\u0131ma beti\u011finizi yazmaya ba\u015flayabilirsiniz. Kitaplar\u0131 listeleyen bir web sitesini kaz\u0131ma \u00f6rne\u011fini ele alal\u0131m.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"importing-libraries\">K\u00fct\u00fcphaneleri \u0130\u00e7e Aktarma<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code data-no-translation=\"\">import requests\nfrom bs4 import BeautifulSoup\nimport pandas as pd<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"fetching-the-web-page\">Web Sayfas\u0131n\u0131 Getirmek<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code data-no-translation=\"\">url = \"http:\/\/books.toscrape.com\/\"\nresponse = requests.get(url)\nhtml_content = response.text<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>HTML&#039;yi ayr\u0131\u015ft\u0131rma<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code data-no-translation=\"\">soup = BeautifulSoup(html_content, 'html.parser')<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"4-handling-multiple-pages\">4. Birden Fazla Sayfay\u0131 \u0130\u015fleme<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Birden fazla sayfay\u0131 kaz\u0131mak i\u00e7in sayfalar aras\u0131nda dola\u015fman\u0131z ve her birinden veri alman\u0131z gerekir. Bunu nas\u0131l yapabilece\u011finiz a\u015fa\u011f\u0131da a\u00e7\u0131klanm\u0131\u015ft\u0131r:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"looping-through-pages\">Sayfalar Aras\u0131nda D\u00f6ng\u00fc<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code data-no-translation=\"\">base_url = \"http:\/\/books.toscrape.com\/catalogue\/page-{}.html\"\ndata = &#91;]\n\nfor page_num in range(1, 51):  # Assuming there are 50 pages\n    response = requests.get(base_url.format(page_num))\n    soup = BeautifulSoup(response.text, 'html.parser')\n    \n    # Extract book data here and append to data list\n    books = soup.find_all('article', class_='product_pod')\n    for book in books:\n        title = book.h3.a&#91;'title']\n        price = book.find('p', class_='price_color').text\n        stock = book.find('p', class_='instock availability').text.strip()\n        \n        data.append({\n            \"Title\": title,\n            \"Price\": price,\n            \"Stock\": stock\n        })<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"5-using-proxies-to-avoid-ip-bans\">5. IP Yasaklar\u0131ndan Ka\u00e7\u0131nmak i\u00e7in Proxy Kullanmak<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Web siteleri, kaz\u0131may\u0131 \u00f6nlemek i\u00e7in genellikle IP adreslerini izler. Proxy sunucusu kullanmak, IP adresinizi maskeleyerek bu sorunu \u00f6nlemenize yard\u0131mc\u0131 olabilir.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"setting-up-a-proxy\">Proxy Kurulumu<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code data-no-translation=\"\">proxies = {\n    \"http\": \"http:\/\/your_proxy_server:port\",\n    \"https\": \"http:\/\/your_proxy_server:port\",\n}\n\nresponse = requests.get(url, proxies=proxies)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Proxy kulland\u0131\u011f\u0131n\u0131zda t\u00fcm trafi\u011finiz ba\u015fka bir sunucu \u00fczerinden y\u00f6nlendirilir ve hedef web sitesinin IP adresinizi alg\u0131lamas\u0131 engellenir.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"6-storing-data-in-csv-and-excel-formats\">6. Verileri CSV ve Excel Formatlar\u0131nda Saklamak<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Verileri kaz\u0131d\u0131ktan sonra daha fazla analiz i\u00e7in saklamak isteyeceksiniz. Verileri CSV veya Excel format\u0131nda kaydetmek i\u00e7in Pandalar\u0131 kullanabilirsiniz.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"saving-data-to-csv\">Verileri CSV&#039;ye Kaydetme<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code data-no-translation=\"\">df = pd.DataFrame(data)\ndf.to_csv('books.csv', index=False)<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"saving-data-to-excel\">Verileri Excel&#039;e Kaydetmek<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code data-no-translation=\"\">df.to_excel('books.xlsx', index=False)<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"sample-table-of-scraped-data\">Al\u0131nm\u0131\u015f Verilerin \u00d6rnek Tablosu<\/h4>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Ba\u015fl\u0131k<\/th><th>Fiyat<\/th><th>Stoklamak<\/th><\/tr><\/thead><tbody><tr><td>B\u00fcy\u00fck Tasar\u0131m<\/td><td>\u00a313.76<\/td><td>Stokta var<\/td><\/tr><tr><td>\u00c7avdar Tarlas\u0131ndaki \u00c7ocuklar<\/td><td>\u00a35.95<\/td><td>Stokta var<\/td><\/tr><tr><td>Cesur Yeni D\u00fcnya<\/td><td>\u00a339.74<\/td><td>Stokta var<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"7-conclusion\">7. Karar<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Python ve BeautifulSoup ile web kaz\u0131ma, web sitelerinden veri \u00e7\u0131karmak i\u00e7in g\u00fc\u00e7l\u00fc bir tekniktir. Bu k\u0131lavuzu takip ederek birden fazla sayfay\u0131 tarayabilmeli, dinamik i\u00e7eri\u011fi y\u00f6netebilmeli ve IP yasaklar\u0131ndan ka\u00e7\u0131nmak i\u00e7in proxy&#039;leri kullanabilmelisiniz. Verileri kaz\u0131madan \u00f6nce daima web sitesinin hizmet \u015fartlar\u0131n\u0131 kontrol etmeyi ve verileri sorumlu bir \u015fekilde kullanmay\u0131 unutmay\u0131n.<\/p>","protected":false},"excerpt":{"rendered":"<p>Web scraping is an essential technique for extracting information from websites. If you\u2019re looking to learn how to scrape data with Python and BeautifulSoup, this guide will walk you through the process step-by-step. By the end of this article, you\u2019ll know how to scrape multiple pages, handle dynamic content, and use proxy servers to avoid [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":923137,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-923136","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-articles"],"acf":[],"_links":{"self":[{"href":"https:\/\/proxyelite.info\/tr\/wp-json\/wp\/v2\/posts\/923136","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/proxyelite.info\/tr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/proxyelite.info\/tr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/proxyelite.info\/tr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/proxyelite.info\/tr\/wp-json\/wp\/v2\/comments?post=923136"}],"version-history":[{"count":1,"href":"https:\/\/proxyelite.info\/tr\/wp-json\/wp\/v2\/posts\/923136\/revisions"}],"predecessor-version":[{"id":926430,"href":"https:\/\/proxyelite.info\/tr\/wp-json\/wp\/v2\/posts\/923136\/revisions\/926430"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/proxyelite.info\/tr\/wp-json\/wp\/v2\/media\/923137"}],"wp:attachment":[{"href":"https:\/\/proxyelite.info\/tr\/wp-json\/wp\/v2\/media?parent=923136"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/proxyelite.info\/tr\/wp-json\/wp\/v2\/categories?post=923136"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/proxyelite.info\/tr\/wp-json\/wp\/v2\/tags?post=923136"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}