Не могу найти конкретную таблицу с помощью BeautifulSoup - PullRequest
1 голос
/ 19 июня 2019

Я использую BeautifulSoup для очистки информации о ценах от «https://www.huaweicloud.com/pricing.html#/ecs"

Я хочу извлечь информацию из таблицы этого сайта, но ничего не получаю.

Я использую Windows 10, последнюю версию BeautifulSoup, Request и Python3.7

import requests
from bs4 import BeautifulSoup
url = 'https://www.huaweicloud.com/pricing.html#/ecs'
headers = {'User-Agent':'Mozilla/5.0'}
response = requests.get(url,headers=headers)
soup = BeautifulSoup(response.content,'html.parser')
soup.find_all('table')

После запуска soup.find_all('table') возвращается пустой список: []

1 Ответ

0 голосов
/ 19 июня 2019

Я знаю, что это не ответ на ваш вопрос, но это может вам помочь.Это код, который я придумал, используя селен и BeautifulSoup.Вам просто нужно указать местоположение chromedriver, и сценарий хорош.

from selenium import webdriver
import time
from bs4 import BeautifulSoup
import pandas as pd

url = 'https://www.huaweicloud.com/pricing.html#/ecs'

driver = webdriver.Chrome("location of chrome driver")
driver.get(str(url))
driver.find_element_by_id("calculator_tab0").click()
time.sleep(3)
html_source = driver.page_source
soup = BeautifulSoup(html_source, features="lxml")
table_all = soup.findAll("table")

output_rows = []
for table in table_all[:2]:
    for table_row in table.findAll('tr'):
        thead = table_row.findAll('th') 
        columns = table_row.findAll('td')
        _thead = []
        for th in thead:
            _thead.append(th.text)
        output_rows.append(_thead)
        _row = []
        for column in columns:
            _row.append(column.text)
        output_rows.append(_row)

output_rows = [x for x in output_rows if x != []]

df = pd.DataFrame(output_rows)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...