代码功能:实现动态网页下的数据抓取(本例主要是因为要点击“加载更多”的按钮的原因)
要注意的地方:
1、chrome无需专门下载什么headless版本,桌面版在用的就可以,但是要下多一个chromedriver,并且要跟所用的chrome版本对应,chromedriver下载地址为:http://chromedriver.storage.googleapis.com/index.html。
2、需要添加chrome.exe所在文件夹地址进系统环境变量,具体可查看网上教程。不复杂。
3、selenium.webdriver.ChromeOptions下的add_argument和binary_location要设置好,才能正确打开。
4、记得要关闭系统浏览器和驱动进程,才能释放系统资源。此处close方法不行,要用quit方法。
好,下面二话不说,贴上代码:
# 运行于python3版本
# 这是一个目的为在“https://www.cjrl.cn/jiedu/meiguo-325.html”该网址爬取EIA数据和API数据的程序
# EIA[美国能源信息署(Energy Information Administration)]原油库存数据:
# API[美国石油协会(American Petroleum Institute)]库存数据:
# 改为用chrome的headless版本(预计会更快)
#-*- coding:utf-8 -*-
# ***************************************************************************
# 导入模块
import re
import os
import chardet
import codecs
import traceback
import time
import csv
from urllib.request import urlopen as uo
from urllib.request import urlretrieve as ur
from selenium import webdriver
# 导入所需模块结束
# ***************************************************************************
# ***************************************************************************
# 基础数据
eia_page_link = 'https://www.cjrl.cn/jiedu/meiguo-325.html'
api_page_link = 'https://www.cjrl.cn/jiedu/meiguo-324.html'
# 基础数据赋值完毕
# ***************************************************************************
# ***************************************************************************
# 定义功能函数
# ***************************************
# 函数一:mkdir() 创建目录