• Foruma hoş geldin 👋 Ziyaretçi

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Soru web sayfasındaki linklerin içerisinden bilgileri toplama

rdnc

Yeni Üye
Katılım
24 Tem 2022
Mesajlar
5
Aldığı beğeni
0
Excel V
Office 2019 TR
belirtilen linkte birçok firma var bunların mail adreslerini excele aktaracağım. makro mu gerekli başka bir şekilde veri çekme işlemi uygulanabilir mi. makro gerekliyse yardımlarınızı rica ederim.

 
Hocam şöyle bir örnek gösterebilirim size
İnceleyiniz
 

Ekli dosyalar

buradaki makroyu göremiyorum ben malesef. bir de veri çekmeyi nasıl yaptınız yani tüm firmaların linklerini ayrı ayrı eklemediniz değil mi? biraza detaylı anlatabilirseniz çok sevinirim.
 
Hocam makro Modül2 içinde. Burdaki mantık linkler tek tek tanımlanıyor. Her linkten veriler ayrı ayrı çekiliyor. Class olduğu için kullanışlı kolay bir olay. Yani tek linkte binlerce mail adrei olsa tek satırlı o verileri alabiliriz. Ancak sizin verileriniz ayrı ayrı adreslerde ve de adreslerin içinde 1 adet mail adresi var. Eğer ki bir adresin içinde fazlaca veri olsa(veya bu adresde sürekli mail adresi de değişse) bu kodu tavsiye edeceğim. Ancak tek adres olduğu için biraz zahmetli değmez diye düşünüyorum. Kodları bir göz gezdirin belki olayı çözersiniz.

Kod:
Option Explicit
 Const link1 = "https://www.cersaie.it/en/e_dettaglio.php?CODICE=4578&PREVQUERY=NAZIONE%3DI__Italy"
 Const link2 = "https://www.cersaie.it/en/e_dettaglio.php?CODICE=4837&PREVQUERY=NAZIONE%3DI__Italy"
 Const link3 = "https://www.cersaie.it/en/e_dettaglio.php?CODICE=5314&PREVQUERY=NAZIONE%3DI__Italy"
 Const link4 = "https://www.cersaie.it/en/e_dettaglio.php?CODICE=5223&PREVQUERY=NAZIONE%3DI__Italy"
Private Sub Düğme1_Tıkla()
Dim arr1 As New clsArray2D, arr As Variant, arr2 As New clsArray2D, arr3 As New clsArray2D, veri, s As Long, x As Long
ReDim veri(0 To 0)
arr = arr1.WEBtoArray(link1, vbLf, False, True, True, True, True, False) ' VbLf, vbCrLf & vbCr
arr2.ArraydenYukle (arr)
s = Application.Match("*@*", arr, 0) - 1
x = x + 1
ReDim Preserve veri(1 To x)
veri(x) = arr(s)
arr = Empty
arr = arr1.WEBtoArray(link2, vbLf, False, True, True, True, True, False) ' VbLf, vbCrLf & vbCr
arr2.ArraydenYukle (arr)
s = Application.Match("*@*", arr, 0) - 1
x = x + 1
ReDim Preserve veri(1 To x)
veri(x) = arr(s)
arr = Empty

arr = arr1.WEBtoArray(link3, vbLf, False, True, True, True, True, False) ' VbLf, vbCrLf & vbCr
arr2.ArraydenYukle (arr)
s = Application.Match("*@*", arr, 0) - 1
x = x + 1
ReDim Preserve veri(1 To x)
veri(x) = arr(s)
arr = Empty

arr = arr1.WEBtoArray(link4, vbLf, False, True, True, True, True, False) ' VbLf, vbCrLf & vbCr
arr2.ArraydenYukle (arr)
s = Application.Match("*@*", arr, 0) - 1
x = x + 1
ReDim Preserve veri(1 To x)
veri(x) = arr(s)
Range("A2").Resize(UBound(veri), 1) = Application.transpose(veri)
arr = Empty

End Sub
 
belirtilen linkte birçok firma var bunların mail adreslerini excele aktaracağım. makro mu gerekli başka bir şekilde veri çekme işlemi uygulanabilir mi. makro gerekliyse yardımlarınızı rica ederim.

Sorunuzla ilgili son durum nedir? Çözüm buldunuz mu?
 
Aşağıdaki dosyayı hazırladım bir kaç sefer firma adı ve yan hücrede o firmaya ait mail adresi geldi fakat daha sonra denemelerimde site koruma duvarı girişe izin vermedi bilgisayarım kilitlendi , Birde siz deneyin belki siz çekebilirsiniz ..
 

Ekli dosyalar

Verilen kodda 12 adede kadar firma bilgisi çekebildim. Aşağıda verdiğim linkteki firmaların mail adreslerini alacağım bir kod gerekli. 3 bini aşkın firma var hepsini tek seferde halletmesi gerek

 
Aşağıdaki şekilde denedim ben 120 de kestim.
Kod:
Private Sub CommandButton3_Click()
Dim ie As New InternetExplorer
Dim itemEle As Object
Dim pt1 As Variant
Dim i As Integer
Dim q As Integer
Dim g As Variant
Dim m As Integer
Dim sonuc As Variant
Dim satır As Variant
Dim elements As Object
On Error Resume Next
Set ie = CreateObject("internetexplorer.application")
ie.navigate "https://www.cersaie.it/en/e_lista.php?RAGSOC=&RAGSOC__1=&NAZIONE=I__Italy&REGIONE=&PRODOTTO=&EN_DESCRIZIONE=&submit=Search"
ie.Visible = False
m = 1
Worksheets("Sayfa1").Range("A1:C65536").Clear
Do While ie.ReadyState <> 4
DoEvents
Loop
Application.Wait (Now + TimeValue("0:00:01"))
For i = 0 To 384
    g = ie.document.getElementsByTagName("table").Item(0).Children(0).Children(i).Children(0).innerHTML
    satır = Mid(g, WorksheetFunction.Find("&amp", g, 1) - 4, 4)
    Worksheets("Sayfa1").Cells(m, 1).Value = satır
    m = m + 1
    DoEvents
Next i
ie.Quit
Set ie = Nothing

Dim kod As Variant
Dim x As Integer
For x = 1 To 384
   
    kod = Worksheets("Sayfa1").Cells(x, 1).Value
    If kod <> "" Then
        If InStr(kod, "=") > 0 Then
            kod = Split(kod, "=")(1)
        End If
        Set ie = CreateObject("internetexplorer.application")
       
        ie.navigate "https://www.cersaie.it/en/e_dettaglio.php?CODICE=" & kod & "&PREVQUERY=NAZIONE%3DI__Italy"
        ie.Visible = False
       
        Do While ie.ReadyState <> 4
        DoEvents
        Loop
        Application.Wait (Now + TimeValue("0:00:01"))
           
        sonuc = ie.document.getElementsByClassName("settanta").Item(5).Children(0).innerHTML
        firm = ie.document.getElementsByClassName("settanta").Item(0).innerHTML
        Cells(x, 1).Select
        Worksheets("Sayfa1").Cells(x, 3).Value = sonuc
        Worksheets("Sayfa1").Cells(x, 2).Value = firm
        sonuc = ""
        firm = ""
        ie.Quit
        Set ie = Nothing
    End If

Next x

Worksheets("Sayfa1").Columns("A:A").Select
    Selection.Delete Shift:=xlToLeft


End Sub
 
Üstatlarım, o site zaten firmaların isim adres ve mail bilgilerini xlsx uzantılı olarak indirmek için bir link eklemiş. Neden hala web tarama ile uğraşıyoruz ki?
 

Ekli dosyalar

  • res1.jpg
    res1.jpg
    95.2 KB · Gösterim: 7
Üstatlarım, o site zaten firmaların isim adres ve mail bilgilerini xlsx uzantılı olarak indirmek için bir link eklemiş. Neden hala web tarama ile uğraşıyoruz ki?
yok biliyorum örnek site olarak attım bunu bu yapıda olan sitelerden veri çekeceğim hiçbirinde tüm listeyi indireceğim link eklenmemiş
 
Üstatlarım, o site zaten firmaların isim adres ve mail bilgilerini xlsx uzantılı olarak indirmek için bir link eklemiş. Neden hala web tarama ile uğraşıyoruz ki?
yani bahsettiğim bu sitede böyle bir seçenek yok bu tür siteler için örnek olsun diye attım bir öncekini



 
Geri
Üst