m0_68306032 2022-12-29 19:01 采纳率: 80%
浏览 54
已结题

python爬虫获取经纬度分布图

python爬虫获取上海市充电站分布数据,输出的经纬度都是(0,0),请问哪里错了

img

img

import requests
import re
from pyquery import PyQuery as pq
from selenium import webdriver

browser = webdriver.Chrome(r'。。。')
kv = {'user-agent':'Mozilla/5.0'}
url = "http://admin.bjev520.com/jsp/beiqi/pcmap/do/pcMap.jsp?"
latter = "name=上海"
browser.get(url+latter)
browser.switch_to.frame('left')   
doc = pq(browser.page_source)
items = doc.find('.news-l .news-ul li a').items()
name = []
pos = []
urls = []
locations=[]
for item in items:
    urls.append("http://admin.bjev520.com" + item.attr('href'))
    name.append(item.find('p').text())
    pos.append(item.find('span').text())
import json
from urllib.request import urlopen, quote
import requests
def getlnglat(address):
    url = 'http://api.map.baidu.com/geocoding/v3/'
    output = 'json'
    ak = 'uGDlG0GN4U3GregLFwNxcibTE1UZPsLe' 
    address = quote(address) 
    uri = url + '?' + 'address=' + address  + '&output=' + output + '&ak=' + ak + '&callback=showLocation'
    r = requests.get(uri)
    tx = r.text
    lng = re.findall(r'"lng":(\d+.\d+)', tx)
    lat = re.findall(r'"lat":(\d+.\d+)', tx)
    if lat:
        return lat[0], lng[0]   # 纬度 latitude   ,   经度 longitude  ,
    else:
        return (0, 0)
for pos in pos:
    lat,lng=getlnglat(pos)
    locations.append((lat,lng))
print(locations)


  • 写回答

1条回答 默认 最新

  • orbitgw C++领域新星创作者 2022-12-30 00:31
    关注

    很可能是被反爬了

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月19日
  • 修改了问题 12月29日
  • 修改了问题 12月29日
  • 修改了问题 12月29日
  • 展开全部

悬赏问题

  • ¥15 fastreport怎么判断当前页数
  • ¥15 Kylin-Desktop-V10-GFB-Release-JICAI_02- 2207-Build14-ARM64.iso有没有这个版本的系统啊
  • ¥15 能不能通过蓝牙将传感器数据传送到手机上
  • ¥20 100元python和数据科学实验项目
  • ¥15 根据时间在调用出列表
  • ¥15 R 包chipseeker 安装失败
  • ¥15 Veeam Backup & Replication 9.5 还原问题
  • ¥15 vue-print-nb
  • ¥15 winfrom的datagridview下拉框变成了黑色,渲染不成功
  • ¥20 利用ntfy实现短信推送