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
#connexion postgresql
import psycopg2
def main():
#Lire les données du tweet
api = twpy.api
tweets = api.user_timeline(screen_name = "ID d'un compte Twitter")
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')
#Le dernier hoge enregistré dans la base de données_Obtenir l'identifiant
for row in max_hoge_id_fetcher:
max_hoge_id = row[0]
print("Le dernier ID enregistré est"+str(hoge_id))
#Lisez les tweets un par un et explorez l'URL
for tweet in tweets:
text = tweet.text
url = tweet.entities['urls']
expanded_url = url[0]['expanded_url']
#Cette fois, la destination de l'exploration est une URL avec une chaîne de caractères spécifique
crawl_url = expanded_url + "hogehoge"
response = request.urlopen(crawl_url)
#Lire la réponse et enregistrer dans le corps
body = response.read()
#Analyser le HTML et le mettre dans la soupe
soup = BeautifulSoup(body,'html.parser')
hoge_id = soup.find('id').text
print(str(hoge_id)+"Commencer")
#Une fois que vous arrivez au dernier hogeid, ne rampez pas après cela.
if int(hoge_id) <= max_hoge_id:
print('Ces données sont déjà incluses.')
break
description = soup.find('description').text
#Omission
#Insérer des données
cursor.execute('insert into hoge(hoge_id,description,hogehoge,,,) values(%s,%s,hogehoge)',(hoge_id,description,hoge,))
print("inserted!")
#Temps de sommeil réglé sur 3 secondes
time.sleep(3)
#Enregistrez vos modifications
connector.commit()
cursor.close()
connector.close()
if __name__ == '__main__':
main()
twpy.py
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#Importer la bibliothèque Tweepy
import tweepy
#Définir diverses clés
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)
#Créer une instance d'API
api = tweepy.API(auth)
#Prêt à utiliser l'API Twitter de Python.
print "Done!"
$ python crawl.py
Done!
Le dernier ID enregistré est 92
Début 98
inserted!
Début 97
inserted!
Début 96
inserted!
Début 95
inserted!
Début 94
inserted!
Début 93
inserted!
Début 92
Ces données sont déjà incluses.
[Python: raclage de sites Web avec 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) Utilisation de Tweepy pour faire fonctionner très facilement l'API Twitter en Python
Merci beaucoup.
Recommended Posts