python
  • web-scraping
  • beautifulsoup
  • 2015-11-18 17 views 0 likes 
    0

    我想刮擦拍攝閃爍照片的座標。 我試圖捕捉這個 'A' 塊:使用以下代碼使用beatifulsoup刮地圖coordiantes

    <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找不到這個鏈接? 謝謝!

    回答

    2

    此鏈接由JavaScript創建。 BS不呈現頁面,因此無法運行JavaScript。

    座標在文件中作爲JavaScript /文本,因此您可以嘗試查找。
    但BS不能幫你做這份工作。使用正則表達式。

    import re 
    
    print re.findall('"latitude":(.+?),', r.content) 
    print re.findall('"longitude":(.+?),', r.content) 
    
    相關問題