2017-03-26 2 views
6

Ich versuche, Web-Scrape sowohl Instagram und Twitter basierend auf Geolocation. Ich kann eine Abfragesuche ausführen, aber ich habe Probleme beim erneuten Laden der Webseite zu mehr und speichern Sie die Felder in Datenrahmen.Web Scraping mit Selenium Python [Twitter + Instagram]

Ich habe ein paar Beispiele für Web Scraping Twitter und Instagram ohne API-Schlüssel gefunden. Aber sie sind in Bezug auf # Tags Keywords.

Ich versuche, in Bezug auf Geo-Standort und zwischen alten Daten zu kratzen. Bisher bin ich soweit gekommen, um Code in Python 3.X und die neuesten Versionen von Paketen in Anaconda zu schreiben.

''' 
    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) 

Für Twitter Suchabfrage Ich erhalte Syntaxfehler

Für Instagram ich keine Störung erhalte, aber ich bin nicht in der Lage, um weitere Beiträge zu laden und zurück zu csv Datenrahmen schreiben.

Ich versuche auch mit Breiten- und Längengrad Suche auf Twitter und Instagram zu suchen.

Ich habe eine Liste von Geo-Koordinaten in CSV Ich kann diesen Eingang verwenden oder kann eine Abfrage für die Suche schreiben.

Jede Art, das Kratzen mit Standort abzuschließen, wird geschätzt.

Schätzen Sie die Hilfe !!

+0

Haben Sie in Betracht gezogen, [Anfragen] (http://docs.python-requests.org/en/master/) anstelle von Selen zu verwenden? Ich habe deine Abfrage gegen Twitter ausgeführt und es hat funktioniert. Außerdem sollte Ihr Code die Abfrage als String erhalten, die Zeile "query = geocode% 3 ..." sollte Ihnen einen Fehler melden. –

+0

@Fernando Könnten Sie bitte helfen Sie mir mit der ans .. Ich bin absolut neu in diesem Web Scraping und war zu viel weg von der Programmierung in letzter Zeit .. Wahrlich, ich bin mehr verwirrt auf, was und wie weiter ... –

Antwort

4

Ich schaffte es mit requests arbeiten. Ihr Code würde wie folgt aussehen:

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) 

Dann können Sie das soup Objekt verwenden, um zu analysieren, was Sie brauchen. Das gleiche sollte für Instagram funktionieren, wenn Ihre Anfrage korrekt ist.

+0

Vielen Dank für die Antwort .. Parsing the supple to dataframe is what one.of the Schwierigkeiten, denen ich gegenüberstehe .. –

+0

Vielleicht solltest du etwas Zeit damit verbringen, die [pandas documentation] zu lesen (http://pandas.pydata.org/pandas-docs/ stable/10min.html) um besser zu verstehen, wie es funktioniert –

+0

Yeah habe es schon versucht, bevor ich die Frage gepostet habe .. Hab nirgends irgendwo eine Frage gepostet .. –