Таблицы на основе веб-скриптов на основе JavaScript - PullRequest
0 голосов
/ 16 марта 2019

Я пытаюсь очистить содержимое таблиц, включая номера телефонов, но не могу извлечь все данные.

Вот мой код:

import urllib
import urllib.request
from bs4 import BeautifulSoup
import os


def make_soup(url):
    thepage = urllib.request.urlopen(url)
    soupdata = BeautifulSoup(thepage, "html.parser")
    return soupdata
playerdata=""
playerdatasaved=""
soup = make_soup("https://www.camicb.org/find-a-cmca")


for record in soup.findAll('tr'):
    for data in record.findAll('td'):
        print(data.string)

1 Ответ

0 голосов
/ 17 марта 2019

Вы можете получить данные, если используете Selenium. Затем вы можете нажать на все страницы на сайте соскребая данные. Сначала установите Selenium.

sudo pip3 install selenium 

(вам не понадобится sudo в Windows, вам может понадобиться pip, а не pip3)

Затем получите драйвер https://sites.google.com/a/chromium.org/chromedriver/downloads (В зависимости от вашей ОС может потребоваться указать местоположение вашего драйвера)

import selenium
from selenium import webdriver
import time
from bs4 import BeautifulSoup
from selenium.common.exceptions import NoSuchElementException

# parse the page
def parse(html):
    soup = BeautifulSoup(html, "html.parser")
    for detail in  soup.find_all('div',{'class': 'professional-details'}):
        print (detail.find('div',{'class': 'fullname'}).get_text(strip=True),\
            detail.find('div',{'class': 'phone'}).get_text(strip=True))

# request the first page.
driver=webdriver.Chrome()
url = "https://www.camicb.org/find-a-cmca"
driver.get(url)

while True:
    try:
        # parse the current page.
        time.sleep(3)
        parse(driver.page_source)
        # Find the next page button and click it.
        driver.find_element_by_id('A6').click()
    except NoSuchElementException:
        # Couldn't find a next page button must have got to the end.
        break
driver.quit()

Выходы:

Ms. Sandy                             Aaron (602) 692-5494
Mrs. Zafera                             Aaron (425) 283-5858  (103)
Mr. Rick                             Abair 
Mr. Karmel Ahmed                            Abbas 971-0504805551
...
Ms. Kimberely Ann                            van Heel (949) 285-0111
Mr. Willem Schalk                            van Schalkwyk (617) 777-3761
Mr. Gary                             van der Laan (407) 781-5769
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...