我想爬工商银行积存金的信息,使用xpath提取,但是从浏览器上复制的xpath打印出来是空列表,我应该怎么解决
import requests
import logging
from lxml import etree
logging.basicConfig(level=logging.INFO,format='%(asctime)s-%(levelname)s:%(message)s')
BASE_URL='https://mybank.icbc.com.cn/icbc/newperbank/perbank3/frame/frame_index.jsp?serviceId=PBL200603'
def scrape_page(url):
logging.info('scraping %s...',url)
try:
response=requests.get(url)
if response.status_code==200:
return response.text
logging.error('get invalid status code %s while scraping %s',response.status_code,url)
except requests.RequestException:
logging.error('error occurred while scraping %s',url,exc_info=True)
yuanma=scrape_page(BASE_URL)
html=etree.HTML(yuanma)
result=html.xpath('/html/body/div/table/tbody/tr[2]/text()')
print(result)
[]
成功爬取积存金信息
积存金是用iframe加载的,在下面这个页面里面
https://mybank.icbc.com.cn/icbc/newperbank/perbank3/gold/goldaccrual_query_out.jsp
直接请求这个页面再用xpath,示例如下,由于是实时数据,结果和网页加载的不一样
import requests
import logging
from lxml import etree
logging.basicConfig(level=logging.INFO,format='%(asctime)s-%(levelname)s:%(message)s')
BASE_URL='https://mybank.icbc.com.cn/icbc/newperbank/perbank3/gold/goldaccrual_query_out.jsp'
def scrape_page(url):
logging.info('scraping %s...',url)
try:
response=requests.get(url)
if response.status_code==200:
return response.text
logging.error('get invalid status code %s while scraping %s',response.status_code,url)
except requests.RequestException:
logging.error('error occurred while scraping %s',url,exc_info=True)
yuanma=scrape_page(BASE_URL)
html=etree.HTML(yuanma)
result=html.xpath('/html/body/div/table/tr[2]/td/text()')
print(result)