python- 机器人抓取谷歌地图数据

# encoding=utf-8
import time

from GoogleData1 import  getGG
import pymysql

# 打开数据库连接 我用的是mysql
# 下边是数据库连接的代码,你可以换成你自己的
# host:就是你的数据库IP地址
db = pymysql.connect(host='',
                     port=3306,
                     user='wt',
                     password='123456',
                     db='wt-dev',
                     charset='utf8')

# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()

# 使用 execute()  方法执行 SQL 查询


try:
    cursor.execute("SELECT name,id,parent_id from  T_gis_destination_comp_jxd_map where GGMap_translate is  null  ")
except Exception as e:
    print(e)

# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchall()
#循环data 拿数据
for row in data:
    GGname = ''
    name = row[0]
    id = row[1]
    parentID = row[2]
    GGname = GGname+name+","
    cursor.execute("SELECT name,parent_id from  T_gis_destination_comp_jxd where destination_id =%s ", (parentID))
    #cursor.fetchone()  fetchone方法可以获取单条数据
    value = cursor.fetchone()
    GGname = GGname + value[0] + ","
 
    print(GGname)
    #getGG()这个方法是我自己定义的 用机器人把数据自动输入到页面并且放回值 代码 在下边
    valueName=getGG(GGname)

    #入库
    cursor.execute("update T_gis_destination_comp_jxd_map set GGMap_translate=%s where id=%s", (valueName, id))
    print("Database version : %s " % valueName)
    #提交
    db.commit()
# 关闭数据库连接
db.close()

# if __name__ == '__main__':
#  name="Montreal Area"
#  value=GoogleData1.getGG(name)
#  print(value)

 

-------------------------------------------------------------------------------------------------

 

 

# encoding=utf-8

from selenium import webdriver
import time

from selenium.common.exceptions import NoSuchElementException
#我用的是Google浏览器,加载格式 百度搜一下就可以
driver = webdriver.Chrome('D:/chromedriver/chromedriver.exe')


def getGG( name ):
  #implicitly_wait隐式等待时间最长等待10秒
  driver.implicitly_wait(10)
  driver.get("https://www.google.com/maps")
  time.sleep(3)
# 获取输入框的内容
  driver.find_element_by_id("searchboxinput").send_keys(name)
  value = driver.find_element_by_id("searchboxinput").get_attribute("value")
  #print(value)
  driver.find_element_by_id("searchbox-searchbutton").click()
  try:
   valueName = driver.find_element_by_xpath("//*[@id='pane']/div/div[1]/div/div/div[1]/div[3]/div[1]/h1").get_attribute('textContent')
  except NoSuchElementException as e:
   return "no"
  return valueName
  #print(valueName)
  # url = driver.current_url
  # print(url)  # 打印当前的url
# 获取浏览器名称
  #print(driver.name)


if __name__ == '__main__':
  getGG()

你可能感兴趣的:(python- 机器人抓取谷歌地图数据)