Hogyan lehet hozzáférni külön táblázat mutatja Ellenőrizzük Python és BeautifulSoup web kaparás

szavazat
0

Én dolgozom web kaparás Python és BeautifulSoup. Célom az, hogy húzza tagok adatainak https://thehia.org/directory?&tab=1 . Jelenleg mintegy 1685 rekordokat.

Amikor megjelenik az oldal forrását a Chrome-, nem találom az asztalon. Úgy tűnik, hogy dinamikusan húz az adatokat. De ha használom a lehetőséget vizsgálja a Chrome, megtalálom a „membersTable” táblázatot a div, amit kell.

írja

Hogyan tudom használni BeautifulSoup, hogy elérje az membersTable hogy tudok hozzáférni a ellenőrizni.

A kérdést 10/10/2019 00:49
a forrás felhasználó
Más nyelveken...                            


2 válasz

szavazat
0

Akkor utánozzák a POST kérés az oldal teszi a tartalom majd hjson kezelni jegyzett kulcsok húr kihúzta válasz

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)

írja kép leírása itt

Válaszolt 10/10/2019 08:54
a forrás felhasználó

szavazat
0

Próbáld ki ezt

   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)
Válaszolt 10/10/2019 04:57
a forrás felhasználó

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