Jak uzyskać dostęp do konkretnej tabeli przedstawionej w skontrolować za pomocą Python i BeautifulSoup za skrobanie internetowej

głosy
0

Pracuję na skrobanie internetowej przy użyciu Python i BeautifulSoup. Moim celem jest, aby wyciągnąć dane członków z https://thehia.org/directory?&tab=1 . Istnieje około 1685 rekordów.

Kiedy wyświetlić źródło strony na moim Chrome, nie mogę znaleźć stolik. Wygląda na to dynamicznie ściąga dane. Ale kiedy należy wybrać opcję wglądu Chrome mogę znaleźć „membersTable” stolik w div, że muszę.

wprowadzić

Jak mogę używać BeautifulSoup aby uzyskać dostęp do membersTable że mogę dostęp w inspekcji.

Utwórz 10/10/2019 o 00:49
źródło użytkownik
W innych językach...                            


2 odpowiedzi

głosy
0

Można naśladować żądanie POST strona sprawia zawartości następnie użyć hjson do obsługi klawiszy nienotowanych w ciąg wyciągnął odpowiedzi

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)

wprowadzić opis obrazu tutaj

Odpowiedział 10/10/2019 o 08:54
źródło użytkownik

głosy
0

Spróbuj tego

   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)
Odpowiedział 10/10/2019 o 04:57
źródło użytkownik

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