2017-03-26 18 views
6

मैं भौगोलिक स्थान पर आधारित Instagram और ट्विटर दोनों को वेब स्क्रैप करने की कोशिश कर रहा हूं। मैं एक क्वेरी खोज चला सकता हूं लेकिन मुझे वेब पेज को फिर से लोड करने में चुनौतियों का सामना करना पड़ रहा है और फ़ील्ड को डेटा-फ्रेम में स्टोर कर रहा है।सेलेनियम पायथन के साथ वेब स्क्रैपिंग [ट्विटर + Instagram]

मुझे एपीआई कुंजी के बिना वेब स्क्रैपिंग ट्विटर और इंस्टाग्राम के लिए कुछ उदाहरण मिले। लेकिन वे # टैग्स के कीवर्ड के संबंध में हैं।

मैं भौगोलिक स्थान और पुरानी तिथियों के बीच में स्क्रैप करने की कोशिश कर रहा हूं। अब तक मैं अब तक पायथन 3.X में लिखित कोड और एनाकोंडा में संकुल के सभी नवीनतम संस्करणों के साथ आया हूं।

''' 
    Instagram - Components 
    "id": "1478232643287060472", 
    "dimensions": {"height": 1080, "width": 1080}, 
    "owner": {"id": "351633262"}, 
    "thumbnail_src": "https://instagram.fdel1-1.fna.fbcdn.net/t51.2885-15/s640x640/sh0.08/e35/17439262_973184322815940_668652714938335232_n.jpg", 
    "is_video": false, 
    "code": "BSDvMHOgw_4", 
    "date": 1490439084, 
    "taken-at=213385402" 
    "display_src": "https://instagram.fdel1-1.fna.fbcdn.net/t51.2885-15/e35/17439262_973184322815940_668652714938335232_n.jpg", 
    "caption": "Hakuna jambo zuri kama kumpa Mungu shukrani kwa kila jambo.. \ud83d\ude4f\ud83c\udffe\nIts weekend\n#lifeistooshorttobeunhappy\n#Godisgood \n#happysoul \ud83d\ude00", 
    "comments": {"count": 42}, 
    "likes": {"count": 3813}}, 
''' 


import selenium 
from selenium import webdriver 
#from selenium import selenium 
from bs4 import BeautifulSoup 
import pandas 

#geotags = pd.read_csv("geocodes.csv") 
#parmalink = 
query = geocode%3A35.68501%2C139.7514%2C30km%20since:2016-03-01%20until:2016-03-02&f=tweets 

twitterURL = 'https://twitter.com/search?q=' + query 
#instaURL = "https://www.instagram.com/explore/locations/213385402/" 


browser = webdriver.Firefox() 
browser.get(twitterURL) 
content = browser.page_source 

soup = BeautifulSoup(content) 
print (soup) 

के लिए ट्विटर खोज क्वेरी मैं सिंटेक्स त्रुटि

हो रही है Instagram के लिए मैं किसी भी त्रुटि नहीं मिल रहा है, लेकिन मैं और अधिक पदों के लिए फिर से लोड करके वापस सीएसवी dataframe को लिखने में सक्षम नहीं हूँ।

मैं ट्विटर और इंस्टाग्राम दोनों में अक्षांश और देशांतर खोज के साथ खोज करने की भी कोशिश कर रहा हूं।

मेरे पास सीएसवी में भू समन्वय की एक सूची है, मैं उस इनपुट का उपयोग कर सकता हूं या खोज के लिए एक प्रश्न लिख सकता हूं।

स्थान के साथ स्क्रैपिंग को पूरा करने का कोई भी तरीका सराहना की जाएगी।

सहायता की सराहना करें !!

+0

क्या आपने सेलेनियम के बजाय [अनुरोध] (http://docs.python-requests.org/en/master/) का उपयोग करने पर विचार किया है? मैंने ट्विटर के खिलाफ आपकी क्वेरी चलाई और यह काम किया। साथ ही, आपके कोड को स्ट्रिंग के रूप में क्वेरी प्राप्त करनी चाहिए, पंक्ति 'क्वेरी = geocode% 3 ...' आपको एक त्रुटि देनी चाहिए। –

+0

@ फ़र्नान्डो क्या आप कृपया उत्तर के साथ मेरी मदद कर सकते हैं .. मैं इस वेब स्क्रैपिंग के लिए बिल्कुल नया हूं और हाल ही में प्रोग्रामिंग से बहुत दूर हूं .. वास्तव में मैं आगे और कैसे आगे बढ़ने पर अधिक उलझन में हूं .. –

उत्तर

4

मैं इसे requests का उपयोग करके काम करने में कामयाब रहा। आपका कोड कुछ इस तरह दिखेगा:

from bs4 import BeautifulSoup 
import requests 

query = "geocode%3A35.68501%2C139.7514%2C30km%20since:2016-03-01%20until:2016-03-02&f=tweets" 

twitter = 'https://twitter.com/search?q=' + query 

content = requests.get(twitter) 
soup = BeautifulSoup(content.text) 

print(soup) 

तो फिर तुम पार्स करने के लिए आपको क्या चाहिए soup वस्तु का उपयोग कर सकते हैं। यदि आपकी क्वेरी सही है, तो वही चीज़ Instagram के लिए काम करनी चाहिए।

+0

आपको बहुत बहुत धन्यवाद उत्तर .. डेटाफ्रेम पर सूप को पार्स करना एक है जो मुझे सामना करना पड़ रहा है। –

+0

शायद आपको [पांडा दस्तावेज] पढ़ने में कुछ समय बिताना चाहिए (http://pandas.pydata.org/pandas-docs/ स्थिर/10min.html) यह समझने के लिए कि यह कैसे काम करता है –

+0

हाँ सवाल पोस्ट करने से पहले भी कोशिश कर रहा था .. इसलिए कहीं भी कोई प्रश्न नहीं पोस्ट किया गया था .. –

संबंधित मुद्दे