使用beautifulsoup刮擦地图坐标

时间:2015-11-18 21:57:15

标签: python web-scraping beautifulsoup

我正在试图拍摄闪烁照片的坐标。 我试着抓住这个'a'块:

<a class="static-maps" href="https://www.flickr.com/map/?fLat=13.387866&amp;fLon=77.699174&amp;zl=13&amp;everyone_nearby=1" data-rapid_p="163"> 

使用以下代码:

url='https://www.flickr.com/photos/hellosaurav/8739282947/in/photolist-ayo8gy-brAbpk-nREjXv-eyQCtp-ovie9F-rdhF3m-eB8g6z-a3jhb9-9jUqhk-evcaBQ-j7iARL-oFd27B-cZ4VaN-mfP6NR-odhcpL-hy2vMX-mHGWoM-n9ARnM-9rxT1W-oqPqDQ-6tmgQ1-oNbZXw-pogsa7-eAeMz9-asB1Qu-o3qgcx-pr6ZGC-dfTh3p-pRuMsf-9yqjrG-bS4AkB-5iDTpA-pSVfhM-ejg7mc-oKWkZX-vDvqdR-nvb2zt-oYDWki-chB5ZY-p14ReR-oJSier-n9MyRk-rGAdSf-exgySN-sFkcTb-hE2tfg-ryeRC5-rqYLen-7zAafa-p3vS3U/'
r=requests.get(url)
url=r.content

soup = BeautifulSoup(url,'html.parser')

#header
header=soup.find("div",{"class":"title-desc-block"}).find("h1")
if(header==None):
    return
else:
    header=header.text.encode("utf-8").strip().replace(',','|')

amap=soup.find("a",{"class":"static-maps"})

print amap

代码打印“无”。

任何人都知道为什么beautifulsoup找不到这个链接?

1 个答案:

答案 0 :(得分:2)

此链接由JavaScript创建。 BS不会渲染页面,因此无法运行JavaScript。

坐标在此文件中作为JavaScript /文本,因此您可以尝试找到它 但BS无法帮助您完成这项工作。使用正则表达式。

import re

print re.findall('"latitude":(.+?),', r.content)
print re.findall('"longitude":(.+?),', r.content)