我写了一段代码,使用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)
答案 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])