Nasıl web kazıma için Python ve BeautifulSoup kullanarak inspect gösterilen belirli bir tablo erişmek için

oy
0

Python ve BeautifulSoup kullanarak web kazıma üzerinde çalışıyorum. Amacım gelen üyeler veri çekme etmektir https://thehia.org/directory?&tab=1 . Etrafında 1685 kayıtları vardır.

Benim Chrome'da sayfa kaynağını görüntülemek, ben tabloyu bulamıyorum. dinamik verileri alır görünüyor. Ben Chrome incelemek seçeneğini kullandığınızda Ama ihtiyacım div membersTable tablosunu bulabilirsiniz.

Burada

Nasıl incelemek de erişebilmesi membersTable erişmek için BeautifulSoup kullanabilirsiniz.

Oluştur 10/10/2019 saat 00:49
kaynak kullanıcı
Diğer dillerde...                            


2 cevaplar

oy
0

Daha sonra dizede tırnaksız anahtarlarını işlemek için yanıt çıkardı hjson kullanmak sayfa içeriği için yapar POST isteği taklit edebilir

import requests, hjson
import pandas as pd

data = {'formId': '3721260'}
r = requests.post('https://thehia.org/Sys/MemberDirectory/LoadMembers', data=data)
data = hjson.loads(r.text.replace('while(1); ',''))
total = data['TotalCount']
structure = data['JsonStructure']
members = hjson.loads(structure)
results = []
df = pd.DataFrame([[member[k][0]['v'] for k in member.keys()] for member in members['members'][0]]
            ,columns = ['Organisation', 'City', 'State','Country'])
print(df)

Burada görüntü açıklama girin

Cevap 10/10/2019 saat 08:54
kaynak kullanıcı

oy
0

Bunu dene

   import requests
   from bs4 import BeautifulSoup


    url = "https://thehia.org/directory?&tab=1"
    response = requests.get(url)
    html = response.content

    soup = BeautifulSoup(html)
    table = soup.find('table', attrs={'class': 'membersTable'})

    row_list = []
    for row in table.findAll('tr',{'class':['normal']}):
        data= []
        for cell in row.findAll('td'):
            data.append(cell.text)
        row_list.append(data)

    print(row_list)
Cevap 10/10/2019 saat 04:57
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more