crawl.py
# -*- coding: utf-8 -*-
try:
# Python 3
from urllib import request
except ImportError:
# Python 2
import urllib2 as request
from bs4 import BeautifulSoup
import twpy
import time
#postgresql Verbindung
import psycopg2
def main():
#Tweet-Daten lesen
api = twpy.api
tweets = api.user_timeline(screen_name = "ID eines Twitter-Kontos")
connector = psycopg2.connect(host="hoge",port=5432,dbname="hogehoge",user="hoge",password="hoge")
max_hoge_id_fetcher = connector.cursor()
cursor = connector.cursor()
max_hoge_id_fetcher.execute('select MAX(hoge_id) from hoge')
#Der letzte in der DB gespeicherte Hoge_ID abrufen
for row in max_hoge_id_fetcher:
max_hoge_id = row[0]
print("Die zuletzt gespeicherte ID ist"+str(hoge_id))
#Lesen Sie die Tweets nacheinander und crawlen Sie die URL
for tweet in tweets:
text = tweet.text
url = tweet.entities['urls']
expanded_url = url[0]['expanded_url']
#Dieses Mal ist das Crawling-Ziel eine URL mit einer bestimmten Zeichenfolge
crawl_url = expanded_url + "hogehoge"
response = request.urlopen(crawl_url)
#Antwort lesen und im Körper speichern
body = response.read()
#Analysieren Sie HTML und geben Sie es in die Suppe
soup = BeautifulSoup(body,'html.parser')
hoge_id = soup.find('id').text
print(str(hoge_id)+"Anfangen")
#Wenn Sie das neueste Hogeid erreicht haben, kriechen Sie danach nicht mehr.
if int(hoge_id) <= max_hoge_id:
print('Diese Daten sind bereits enthalten.')
break
description = soup.find('description').text
#Unterlassung
#Daten einfügen
cursor.execute('insert into hoge(hoge_id,description,hogehoge,,,) values(%s,%s,hogehoge)',(hoge_id,description,hoge,))
print("inserted!")
#Schlafzeit auf 3 Sekunden eingestellt
time.sleep(3)
#Speichern Sie Ihre Änderungen
connector.commit()
cursor.close()
connector.close()
if __name__ == '__main__':
main()
twpy.py
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#Tweepy-Bibliothek importieren
import tweepy
#Stellen Sie verschiedene Schlüssel ein
CONSUMER_KEY = 'hoge'
CONSUMER_SECRET = 'hoge'
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
ACCESS_TOKEN = 'hoge'
ACCESS_SECRET = 'hoge'
auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET)
#API-Instanz erstellen
api = tweepy.API(auth)
#Bereit zum Betreiben der Twitter-API von Python.
print "Done!"
$ python crawl.py
Done!
Die zuletzt gespeicherte ID ist 92
Starten Sie 98
inserted!
Starten Sie 97
inserted!
Starten Sie 96
inserted!
Starten Sie 95
inserted!
Starten Sie 94
inserted!
Starten Sie 93
inserted!
Starten Sie 92
Diese Daten sind bereits enthalten.
[Python: Scraping von Websites mit BeautifulSoup4](http://momijiame.tumblr.com/post/114227737756/python-beautifulsoup4-%E3%82%92%E4%BD%BF%E3%81%A3 % E3% 81% A6-Web-% E3% 82% B5% E3% 82% A4% E3% 83% 88% E3% 82% 92% E3% 82% B9% E3% 82% AF% E3% 83% AC% E3% 82% A4% E3% 83% 94% E3% 83% B3% E3% 82% B0% E3% 81% 99% E3% 82% 8B) Verwenden von Tweepy zum einfachen Bedienen der Twitter-API in Python
Vielen Dank.
Recommended Posts