Webacemi.com, forum sayfalarına hoş geldiniz. Forumlardan yararlanmak için ücretsiz üye olabilirsiniz.

+ Forumlar , Asp + Xml ile siteye veri çekmekcevapla cevapla

Tcay
Üye
Tcay

33 ileti
tarih 07 Şubat 2012 Salı, 23:34
Merhabalar;

Uzun süre sonra buraya konu açabilmek, sizlerin cevaplarını beklemek çok hoş. Bizi kavuşturanlara teşekkürlerimi sunuyorum Smiley

Hemen soruma geçiyorum;

Bitmeyenkartus.com.tr sitesindeki ürünlerin xml ile çıktısını almaktayım.Aldığım bu çıktıda yer alan ürünleri web sayfama çekmek istiyorum, aslında direk çekebiliyorum ama tek sayfada 10.000 ürün oldumu sayfa çok kasıyor Smiley

1- Çektiğim bu ürünleri sayfalayabilirmiyim?
2- Ürünleri kategori kategori sıralayabilirmiyim?
3- Ürüne tıkladığımda detay sayfasında ürünü açabilirmiyim? (urun.asp?id=289374 gibi)

Şimdiden teşekkürler


frht
Yönetici
frht

90 ileti
tarih 08 Şubat 2012 Çarşamba, 07:21 # 1
Bahsettiğin bu sitedeki ürünleri kendi sitene çekmek istiyorsun yani bir nevi bot yapmak istiyorsun anladığım kadarıyla, bu bahsettiğin sayfalama, kategorileme detay işlemlerini yapmak için öncelikle bu gelen verileri veritabanına kayıt ettirmelisin ondan sonrası klasik Asp zaten.

Bahsettiğin 10.000 ürünü sayfana çektikten sonra yazdırma işlemi yerine o bilgileri veritabanına kayıt ettirirsen sanırım sorunun çözülür


Tcay
Üye
Tcay

33 ileti
tarih 08 Şubat 2012 Çarşamba, 12:00 # 2
peki bu veritabanına kaydı nasıl yaparım?


frht
Yönetici
frht

90 ileti
tarih 08 Şubat 2012 Çarşamba, 14:50 # 3
Aşağıda kayıt bölümünü yazıyorum bu kayıt bölümünü xml belgesinden çektiğin verileri yazdırdığın sayfanda yazdırma komutu yerine kullan. ( bu yapacağın sayfayı farklı bir sayfa olarak oluştur ki bu sadece bot olarak işlev görüp veritabanına kayıt işlemi için işe yarayacaktır. )


##Veritabanı bağlantını yap##

set rs = server.CreateObject("adodb.recordset")
Sql = "select * from tablon"
rs.open Sql, bag, 1,3

Set isaret = objXML.selectNodes("//alanadı")
For d = 0 to (isaret.Length - 1)
rs.AddNew
rs("alanadın") = isaret(d).GetAttribute("cekilenalan")
rs.update
Next

rs.close : set rs = nothing
bag.close : set bag = nothing

Response.Write "kayıt tamam"


Tcay
Üye
Tcay

33 ileti
tarih 08 Şubat 2012 Çarşamba, 22:16 # 4
Ferhat bahsettiğin şekilde yaptım, hatta ilk etapta sadece xmlde yer alan "stockCode olanı kaydediyorum...

set isaretin oldugu 15. satırda hata alıyorum;

Object required: ``




Set baglan = Server.CreateObject("adodb.connection")
baglan.open "Provider=Microsoft.Jet.Oledb.4.0;data source=" &Server.MapPath("dbm.mdb")

set rs = server.CreateObject("adodb.recordset")
Sql = "select * from kartus"
rs.open Sql, baglan, 1,3

Set isaret = objXML.selectNodes("http://www.bitmeyenkartus.com.tr/index.php?do=catalog/output&pCode=8905167878")
For d = 0 to (isaret.Length - 1)
rs.AddNew
rs("stockCode") = isaret(d).GetAttribute("stockCode")
rs.update
Next

rs.close : set rs = nothing
baglan.close : set baglan= nothing

Response.Write "kayıt tamam"


frht
Yönetici
frht

90 ileti
tarih 09 Şubat 2012 Perşembe, 00:53 # 5
kodlamada belirttiğim alan adı web adresi değil Tcay xml verisindeki veri çekmek istediğin bölümün adı yani düğüm diye geçer.

<stockcode>

gibi.


Tcay
Üye
Tcay

33 ileti
tarih 09 Şubat 2012 Perşembe, 01:00 # 6
Peki xml linkini nereye koyacağım o zaman?


frht
Yönetici
frht

90 ileti
tarih 09 Şubat 2012 Perşembe, 01:20 # 7
sen xml verilerini çektiğin kodlarda herhangi bir değişiklik yapma, 10.000 bilgiyi sayfama çekip yazdırıyorum dedin ya, yazdırdığın yerde bu bahsettiğim kodları ekle ki sayfaya değil veri tabanına kayıt olsun


Tcay
Üye
Tcay

33 ileti
tarih 09 Şubat 2012 Perşembe, 12:10 # 8
xml ile ilk defa çektiğim için neyi nereye gideceği konusunda bi bilgim yok;

xml çekme kodum ise;

Dim rssOku
Dim ObjeListesi
Dim Obje
Dim I

Set rssOku = Server.CreateObject("MSXML2.FreeThreadedDOMDocument")
rssOku.async = False

rssOku.setProperty "ServerHTTPRequest", True
rssOku.Load("http://www.bitmeyenkartus.com.tr/index.php?do=catalog/output&pCode=8905167878")

Set ObjeListesi = rssOku.getElementsByTagName("item")
Set rssOku = Nothing

For Each Obje In ObjeListesi
%>
<%=Obje.childNodes(6).Text%><br><br>
<%
Next

Set ObjeListesi = Nothing


frht
Yönetici
frht

90 ileti
tarih 09 Şubat 2012 Perşembe, 14:19 # 9
şöyle bir örnek yaptım bi dene istersen

<%
URL = "http://www.bitmeyenkartus.com.tr/index.php?do=catalog/output&pCode=8905167878"

Set objXML = CreateObject("MSXML.DOMDocument" )
objXML.async = False
objXML.setProperty "ServerHTTPRequest", true
objXML.load(URL )

Set baglan = Server.CreateObject("adodb.connection")
baglan.open "Provider=Microsoft.Jet.Oledb.4.0;data source=" &Server.MapPath("dbm.mdb")

set rs = server.CreateObject("adodb.recordset")
Sql = "select * from kartus"
rs.open Sql, baglan, 1,3

Set sec = objXML.selectNodes("//root" )

For i = 0 to (sec.Length - 1 )

rs.AddNew
rs("stockCode")=sec(i).GetAttribute("stockCode")
rs.update
Next
Response.Write ("Kayıt edildi." )
%>


Tcay
Üye
Tcay

33 ileti
tarih 09 Şubat 2012 Perşembe, 22:42 # 10
kayıt edildi sayfasını alıyorum, sanırım kaydı gerçekleştiriyor ama bir sorunda çıkmıyor...

Access veritabanını bilgisayara indiriyorm, tabloyu açarken hata alıyorum, sanırsam veritabanını bozuyor aynı anda 500 veri ekleyince... Mysqlde deneyim


System
Üye
System

42 ileti
tarih 10 Şubat 2012 Cuma, 00:29 # 11
aynı anda çoklu kayıt girmek veri tabanını ister istemez yorar, bot sayfasını her çalıştırdığında kayıtları 20şer 20şer falan eklettir bence daha sağlıklı olur


Tcay
Üye
Tcay

33 ileti
tarih 10 Şubat 2012 Cuma, 14:05 # 12
bot sayfasını zaten haftada 1 kez çalıştırıcam zaten o yüzden pek sıkıntı olmaz...

Mysql veritabanına yükleyeceğim ama

rs("stockCode")=sec(i).GetAttribute("stockCode")

şu satırı insert intoda nasıl yazdıracağım?

yani kayıt satırım nasıl olmalı?


System
Üye
System

42 ileti
tarih 10 Şubat 2012 Cuma, 18:37 # 13
mysql veritabanına kayıt ekletirken de yukarıdaki şekliyle kullanabilirsin Insert Into şart değil,


Tcay
Üye
Tcay

33 ileti
tarih 10 Şubat 2012 Cuma, 21:59 # 14
Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.

diye bir hata aldım


frht
Yönetici
frht

90 ileti
tarih 10 Şubat 2012 Cuma, 23:39 # 15
- Kayıt edeceğin verilerin uzunluğu fazlaysa alan türünü text olarak belirle
- Kayıt ettiğin alan adlarını (Büyük küçük harfler dahil ) tekrar gözden geçir aynı olduğundan emin ol
- Veritabanı bağlantını yaparken farklı bir bağlantı kodu dene

bu 3 adımı teker teker denermisin




Sponsor Bağlantı




Bu içerige yorum yazabilmek için üye girisi yapmaniz gerekmektedir. Henüz üye degilseniz kayit sayfasindan üye olabilirsiniz..
Aktif Başlıklar son cevaplananlar

47Google Chrome ağa erişilemiyor sorunu
Son Mesaj : System
07 Mayıs 2012 Pazartesi
54Asp ile html uzantılı sayfalar
Son Mesaj : frht
11 Şubat 2012 Cumartesi
55Döngü içerisinde döngü kurmak
Son Mesaj : System
11 Mart 2012 Pazar
55Çoklu dil kullanımı
Son Mesaj : System
11 Mart 2012 Pazar
47div içerisinde hizalama sorunu
Son Mesaj : System
11 Mart 2012 Pazar
56Google tableti kim yapacak
Son Mesaj : meriç
07 Mart 2012 Çarşamba
55resim konumu ayarlama
Son Mesaj : SyncMaster
27 Şubat 2012 Pazartesi


Aktif Başlıklar cevap bekleyen konular

42CSS ile adım adım tasarım geliştiriyoruz
Konuyu Başlatan : frht
10 Mayıs 2012 Perşembe
42Adım adım asp script yapalım
Konuyu Başlatan : frht
29 Mart 2012 Perşembe
47Güvenlik kodunun otomatik yenilenmesi
Konuyu Başlatan : Shift
11 Mart 2012 Pazar
56Sony, Move.me´yi Avrupa´ya açtı
Konuyu Başlatan : wbcm
09 Mart 2012 Cuma
56Anonymous´u destekleyen yandı
Konuyu Başlatan : wbcm
09 Mart 2012 Cuma
56Android´in Siri´si yolda..
Konuyu Başlatan : wbcm
09 Mart 2012 Cuma
56Android Market artık yok
Konuyu Başlatan : wbcm
07 Mart 2012 Çarşamba