继续练手,写了一个已知地理位置爬经纬度的代码,用selenium模拟操作浏览器。
编程环境:py3
假定地理位置的读取与写入均在excel中进行
当数据量较大时需要调openpyxl而不是xlwt来写入数据:
import xlrd
from openpyxl import Workbook
from selenium import webdriver
import time
先将所有地理位置读入一个list中:
def get_location(sql_results,exam_num): #获得所有地址
location = []
for i in range(exam_num):
value = sql_results.cell_value(i+2,8)
if value in location:
continue
else:
location.append(value)
return location
查询经纬度使用网站:http://www.gpsspg.com/maps.htm
由于使用的是chrome浏览器,所以先下载了一个ChromeDriver并复制到python3的安装目录中。
selenium提供了很多寻找标签的方法,类似于BeautifulSoup寻找tag,但更为直观简便。
若已知id可以使用find_element_by_id,这帮助我们寻找到文本框(使用.send_keys将文字送入文本框)、按钮(.click()模拟点击按钮)。
也可使用find_element_by_xpath("********").get_attribute("****")获取标签中的其它属性。此例中可通过"style"属性判断地址是否有效,而selenium中并不存在find_element_by_style这样的命令