- 积分
- 2338
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2019-10-29
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 Zhuming 于 2020-11-25 23:31 编辑
本文参考了这篇博客:https://blog.csdn.net/qq_21567935/article/details/88828112,感谢八千鸟羽毛的分享,该作者写于2019年3月,如今已有一些不同(网站源代码做了一点更新)。该作者说明:该网站一天订单数不能超过45个,又由于本次数据集只能隔两个月检索一次,所以年份跨度选为十一年,最终只会产生44个订单。另外,该代码中间需要手动输入验证码。最后获取到的是包含一堆下载链接的txt,可以使用wget等工具下载。
工具:python,需要selenium库和firefox drive或Google drive。
直接贴最新的代码:
import time
from selenium import webdriver
start_year=2000 # 初始年份
end_year=2001 # 结束年份
driver= webdriver.Firefox()
driver.get('http://data.cma.cn/user/toLogin.html')
driver.refresh() # 刷新页面
driver.find_element_by_id("loginWeb-page").click()
vcode = input() # 在代码运行窗口(非浏览器窗口)填写验证码
print(vcode)
# 填写用户名 密码 验证码
driver.find_element_by_id("userName-page").send_keys("******") # 填入用户名
driver.find_element_by_id("password-page").send_keys("******") # 填入密码
driver.find_element_by_id("verifyCode-page").send_keys(vcode)
driver.find_element_by_id("loginPage-page").click()
time.sleep(4)
for i in range(start_year,end_year+1):
for j in range(1,5):
driver.switch_to_window(driver.window_handles[0])
driver.get("http://data.cma.cn/dataService/cdcindex/datacode/SURF_CLI_CHN_MUL_DAY_V3.0/show_value/normal.html") # 填入相应数据集检索页面的地址(就是输入日期页面的地址,该地址仅为示范)
driver.find_element_by_id("dateS").clear()
year = '%d' % i
month =j*3 - 2
start_month = '%d' % (month)
end_month = '%d' % (month+2) # 月份间隔为3个月
driver.find_element_by_id("dateS").send_keys(year+"-"+start_month)
driver.find_element_by_id("dateE").clear()
driver.find_element_by_id("dateE").send_keys(year+"-"+end_month)
vcode2 = input()
print(vcode2)
driver.find_element_by_name("verifyCode").send_keys(vcode2)
driver.find_element_by_class_name("search-bt1210").click()
driver.switch_to_window(driver.window_handles[1]) # 切换窗口
time.sleep(4)
driver.find_element_by_id("buttonAddCar").click()
time.sleep(4)
driver.close()
网站源代码今后肯定还会继续更新,仔细找哪里做了改变。
|
|