失败读取地区态势

昨日的读取最后运行后发现无法读取,因为高德把交通态势的服务接口,但是高德交通态势页面又可以查看地区的交通实时情况,所以直接页面操作查询数据读取

操作页面需要包

from selenium import webdriver
import time
import location

进入页面两种区别

    row = location.read_sql("159544")
    chrome_options = webdriver.ChromeOptions()
    chrome_options.add_argument('headless')
    driver = webdriver.Chrome(chrome_options=chrome_options)
    driver.get('https://lbs.amap.com/api/webservice/guide/api/trafficstatus')

不打开页面操作

    row = location.read_sql("159544")
    chrome_options = webdriver.ChromeOptions()
    chrome_options.add_argument('headless')
    chrome_options.add_argument('--disable-gpu')
    driver = webdriver.Chrome()

打开页面操作

send_keys设置input框内容 click处理点击

driver.find_element_by_name("location").clear()
    driver.find_element_by_name("location").send_keys(row[0][0:])
    driver.find_element_by_name("radius").clear()
    driver.find_element_by_name("radius").send_keys('1500')
    driver.find_elements_by_xpath('//button[@class="run"]')[1].click()

获取查询结果

dataif = driver.find_elements_by_class_name("pre")[1].text
    stra = "status"
    ab = dataif.index(stra)
    abc = dataif[ab+11:ab+12]
    i=1
    while (abc == '0')&(i <= 3):
        locationcenter = location.read_location(row[i])
        i+=1
        driver.find_element_by_name("location").clear()
        driver.find_element_by_name("location").send_keys(locationcenter[0:-1])
        driver.find_elements_by_xpath('//button[@class="run"]')[1].click()
        time.sleep(0.5)
        dataif = driver.find_elements_by_class_name("pre")[1].text
        ab = dataif.index(stra)
        abc = dataif[ab+11:ab+12]
    driver.find_elements_by_xpath('//span[@class="jsontree_expand-button"]')[0].click()
    driver.find_elements_by_xpath('//span[@class="jsontree_expand-button"]')[1].click()
    a= driver.find_elements_by_class_name("pre")[1].text
    ab = a.index("status",20)
    abc = (str)(a[ab+11:ab+12])
 ab = a.index("description",200)
    abcd = a[ab+16:]
    abcd=abcd[:-7]
    tuijian = (float)(function(abc))
    ssa2=(float)(location.read_locationa(row[4])['sum'])
    print(tuijian*100*0.6+ssa2*0.4)
    print(tuijian)
    print(abcd)
    print(ssa2)

 

posted @ 2021-05-19 20:42  韦德·沃兹  阅读(47)  评论(0)    收藏  举报