• 10-09-2022, 15:29:31
    #1
    Su an dunyada daha iyisi olmadigini bircok yabanci yayincidan ogrendim. Docker ve splashle inanilmaz isler yapilabiliyor. Birkac gundur kullaniyorum ve cektigim verileri SQLite filan yazdirabiliyorum. Bazen Json olarak kullaniyorum. Kusursuz bir arac. Hatta kurallar girerek kendi kendine istediginiz urlleri tarayip o sayfalardaki tum verileri dahi cekebiliyor. Net bir url girmenize bile gerek yok. Sayfalama kullanmayacaksaniz /product/ linkini tara diyip gecioyrsunuz


    Merak ettigim su:
    Orumcegimi yaratiyorum kusursuz calisiyor ama
    scrapy crawl bocek ismi -O bilgi.json seklinde elle kodlamam gerekiyor!

    from scrapy.crawler import CrawlerProcess kutuphanesi yardimiyla
    Olusturdugumu class yapisindaki kodu artik kod yazmadan da calistirabiliyoruz.

    Ancak ben bu classi loopa bagliyamiyorum. Biraz stackflow arastirdim ama cok fazla bilgi yok.

    import scrapy
    from scrapy.crawler import CrawlerProcess
    
    class MySpider(scrapy.Spider):
        # Your spider definition
        ...
    
    process = CrawlerProcess(settings={
        "FEEDS": {
            "items.json": {"format": "json"},
        },
    })
    
    process.crawl(MySpider)
    process.start() # the script will block here until the crawling is finished
    Mesela ben bu kodu While dongusune nasil alirim.. Bir sitede saat var, onu cekip surekli guncellemek ve json dosyasindan islem yapmak istiyorum diyelim. Hersey iyi guzel taramasi guzel ama otomasyonunu cozemedim

    Bir yardimci olursaniz sevinirim.
  • 12-09-2022, 19:43:55
    #3
    Messi adlı üyeden alıntı: mesajı görüntüle
    Su an dunyada daha iyisi olmadigini bircok yabanci yayincidan ogrendim. Docker ve splashle inanilmaz isler yapilabiliyor. Birkac gundur kullaniyorum ve cektigim verileri SQLite filan yazdirabiliyorum. Bazen Json olarak kullaniyorum. Kusursuz bir arac. Hatta kurallar girerek kendi kendine istediginiz urlleri tarayip o sayfalardaki tum verileri dahi cekebiliyor. Net bir url girmenize bile gerek yok. Sayfalama kullanmayacaksaniz /product/ linkini tara diyip gecioyrsunuz


    Merak ettigim su:
    Orumcegimi yaratiyorum kusursuz calisiyor ama
    scrapy crawl bocek ismi -O bilgi.json seklinde elle kodlamam gerekiyor!

    from scrapy.crawler import CrawlerProcess kutuphanesi yardimiyla
    Olusturdugumu class yapisindaki kodu artik kod yazmadan da calistirabiliyoruz.

    Ancak ben bu classi loopa bagliyamiyorum. Biraz stackflow arastirdim ama cok fazla bilgi yok.

    import scrapy
    from scrapy.crawler import CrawlerProcess
    
    class MySpider(scrapy.Spider):
        # Your spider definition
        ...
    
    process = CrawlerProcess(settings={
        "FEEDS": {
            "items.json": {"format": "json"},
        },
    })
    
    process.crawl(MySpider)
    process.start() # the script will block here until the crawling is finished
    Mesela ben bu kodu While dongusune nasil alirim.. Bir sitede saat var, onu cekip surekli guncellemek ve json dosyasindan islem yapmak istiyorum diyelim. Hersey iyi guzel taramasi guzel ama otomasyonunu cozemedim

    Bir yardimci olursaniz sevinirim.
    Messi adlı üyeden alıntı: mesajı görüntüle
    Su an dunyada daha iyisi olmadigini bircok yabanci yayincidan ogrendim. Docker ve splashle inanilmaz isler yapilabiliyor. Birkac gundur kullaniyorum ve cektigim verileri SQLite filan yazdirabiliyorum. Bazen Json olarak kullaniyorum. Kusursuz bir arac. Hatta kurallar girerek kendi kendine istediginiz urlleri tarayip o sayfalardaki tum verileri dahi cekebiliyor. Net bir url girmenize bile gerek yok. Sayfalama kullanmayacaksaniz /product/ linkini tara diyip gecioyrsunuz


    Merak ettigim su:
    Orumcegimi yaratiyorum kusursuz calisiyor ama
    scrapy crawl bocek ismi -O bilgi.json seklinde elle kodlamam gerekiyor!

    from scrapy.crawler import CrawlerProcess kutuphanesi yardimiyla
    Olusturdugumu class yapisindaki kodu artik kod yazmadan da calistirabiliyoruz.

    Ancak ben bu classi loopa bagliyamiyorum. Biraz stackflow arastirdim ama cok fazla bilgi yok.

    import scrapy
    from scrapy.crawler import CrawlerProcess
    
    class MySpider(scrapy.Spider):
        # Your spider definition
        ...
    
    process = CrawlerProcess(settings={
        "FEEDS": {
            "items.json": {"format": "json"},
        },
    })
    
    process.crawl(MySpider)
    process.start() # the script will block here until the crawling is finished
    Mesela ben bu kodu While dongusune nasil alirim.. Bir sitede saat var, onu cekip surekli guncellemek ve json dosyasindan islem yapmak istiyorum diyelim. Hersey iyi guzel taramasi guzel ama otomasyonunu cozemedim

    Bir yardimci olursaniz sevinirim.
    Sorunu cozdum hocam su an 3-4 botu ayni anda 1. saniye arayla calistirabiliyorum. Scrapy dokumanini okudum. CrawlerRunner kullaniyorum.

    Sizi yakalamisken bir sorum olacak yardimci olursaniz sevinirim. Ciktilari json olarak yazdiriyorum. Hicbir sorun yok. Loop ozelligi olsun bot sayisi olsun sifir sorun.

    Sorum su mesela bu bir deger dondurunce Json degilde bir degiskene atamak ve onu bir programda kullanmak istiyorum bunu nasil yaparim?

    import scrapy
    from scrapy.crawler import CrawlerRunner
    
    class Test2(scrapy.Spider):
        
        name = 'Home'
    
        def start_requests(self):
            yield scrapy.Request('https://www.test.com')
    
        def parse(self, response):
    
            for total in response.css('td'):
                yield{
                    'total': total.css('::text').get()               
                    }
    
                      
    
    runner2 = CrawlerRunner()
    runner2.crawl(Test)
    Mesela bunu bir proje gibi komut satiri olmadan calistirabiliyorum

    runner = CrawlerRunner(settings = {
    "FEEDS": {
    "Home.json": {"format": "json", "overwrite": True},
    },
    })

    istersem jsonda kaydediyorum ama mobil bir uygulama icin burdan donen degeri bir degisken ile baska bir py dosyasinda kullanabilmek icin dondurmem gerekiyor. Bunu nasil yaparim?

    runner = CrawlerRunner()
    a = runner2.crawl(Test)

    print(a)
    <Deferred at 0x65cbfb6d0>

    Degeri donduremiyorum yani nasil kullanmam gerekir bu yapiyi?

    Tesekkur ederim.
  • 12-09-2022, 22:56:22
    #4
    Messi adlı üyeden alıntı: mesajı görüntüle
    Sorunu cozdum hocam su an 3-4 botu ayni anda 1. saniye arayla calistirabiliyorum. Scrapy dokumanini okudum. CrawlerRunner kullaniyorum.

    Sizi yakalamisken bir sorum olacak yardimci olursaniz sevinirim. Ciktilari json olarak yazdiriyorum. Hicbir sorun yok. Loop ozelligi olsun bot sayisi olsun sifir sorun.

    Sorum su mesela bu bir deger dondurunce Json degilde bir degiskene atamak ve onu bir programda kullanmak istiyorum bunu nasil yaparim?

    istersem jsonda kaydediyorum ama mobil bir uygulama icin burdan donen degeri bir degisken ile baska bir py dosyasinda kullanabilmek icin dondurmem gerekiyor. Bunu nasil yaparim?

    runner = CrawlerRunner()
    a = runner2.crawl(Test)
    
    print(a)
    <Deferred at 0x65cbfb6d0>
    Degeri donduremiyorum yani nasil kullanmam gerekir bu yapiyi?

    Tesekkur ederim.

    çıkan json u okumanız gerekiyor..

    from json import load
    
    def test_verileri():
        return load(open("Home.json"))
    
    print(test_verileri())