使用python硒刮HTML表

时间:2019-06-17 06:50:38

标签: python selenium-webdriver beautifulsoup

我写了一段代码,使用python硒来刮擦HTML表。 但问题是,它正在返回一个空的对象,我是从中写入的。谢谢。我可以抓取任何值,但不能在表中抓取。我已经尝试过td,tr,span标签。那些返回空对象的人

import requests
import lxml.html as lh
import urllib2
import time 
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC 
from bs4 import BeautifulSoup as BSoup
import pyodbc 
import datetime
from django.utils.encoding import smart_str, smart_unicode
import sys
import re


reload(sys)  
sys.setdefaultencoding('utf8')

browser =  webdriver.Firefox()
browser.get("https://www.cbsl.gov.lk/measures-of-consumer-price-inflation")

wait = WebDriverWait(browser, 5)
bs_obj = BSoup(browser.page_source, 'html.parser')
table  = bs_obj.findAll('table')

print(table)

1 个答案:

答案 0 :(得分:1)

使用pandas库获取Consumer Price Inflation表数据。

检查网页,您将在iframe中看到Consumer Price Inflation表数据,它的源URL是https://www.cbsl.gov.lk/cbsl_custom/inflation/inflationwindow.php,不需要selenium库来抓取数据。您还可以通过requests库和熊猫来获取表数据,它的响应时间少于selenium库。

import requests
import pandas as pd

url = "https://www.cbsl.gov.lk/cbsl_custom/inflation/inflationwindow.php"
res = requests.get(url)
tables = pd.read_html(res.text)

print(tables[0])