IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

scrapy et mysql


Sujet :

Python

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    F�vrier 2013
    Messages
    7
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2013
    Messages : 7
    Par d�faut scrapy et mysql
    Bonjour
    Je suis d�butant en python et ai un probl�me de compr�hension avec l'insertion de donn�es en base.
    Mon objectif est d'ins�rer l'int�gralit� des liens trouv� sur un site dans une base cependant impossible d'ins�rer toutes les urls en base � chaque fois je n'ins�re qu'une ligne
    Surement une incompr�hension de ma part sur le fonctionnement de scrapy mais j'ai besoin d'un coup de main pour mieux comprendre
    Vous trouverez ci-dessous les diff�rents fichiers avec lesquels je travail
    D'avance merci

    itemp.spy
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    from scrapy.item import Item, Field
    class TutorialItem(Item):
        pass
    class DmozItem(Item):
        link = Field()
    settings.py
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    BOT_NAME = 'tutorial'
    SPIDER_MODULES = ['tutorial.spiders']
    NEWSPIDER_MODULE = 'tutorial.spiders'
    ITEM_PIPELINES = ['tutorial.pipelines.MySQLPipeline']
    pipelines.py
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    class MySQLPipeline(object):
        def __init__(self):
            import MySQLdb
            self.db = MySQLdb.connect(host="localhost", user="root", passwd="", db="crawler_engine")
     
        def process_item(self, item, spider):
            cursor = self.db.cursor()
            sql = "insert into urls(url, domain, num_crawl) values ('%s','%s','%s')" % (item['link'][0],'probikeshop', 1)
            cursor.execute(sql)
            return item
     
        def spider_closed(self, spider):
            self.db.commit()
    __init__.py
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    from scrapy.spider import BaseSpider
    from scrapy.selector import Selector
    from tutorial.items import DmozItem
    from scrapy.selector import HtmlXPathSelector
    from scrapy.contrib.spiders import CrawlSpider
    from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
    class Dmozv0Spider(BaseSpider):
        name = "dmozv0"
        allowed_domains = ["python.org"]
        start_urls = ["http://www.python.org/"]
     
        def parse(self, response):
            hxs = HtmlXPathSelector(response)
            item = DmozItem()
            item['link'] = hxs.select('//div/ul/li/a/@href').extract()
            return item

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    F�vrier 2013
    Messages
    7
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2013
    Messages : 7
    Par d�faut
    j'ai trouv� ;-)

    pipelines.py
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    class MySQLPipeline(object):
        def __init__(self):
            import MySQLdb
            self.db = MySQLdb.connect(host="localhost", user="root", passwd="", db="crawler_engine", charset = 'utf8', use_unicode = False)
     
        def process_item(self, item, spider):
            cursor = self.db.cursor()
            for i in range(len(item['link'])):
                cursor = self.db.cursor()
                sql = "insert into urls(url, domain, num_crawl) values ('%s','%s','%s')" % (item['link'][i],'probikeshop', 1)
                cursor.execute(sql)
                self.db.commit()
            return item

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [Kylix] Kylix attaque Mysql ?
    Par nahmsath dans le forum EDI
    R�ponses: 9
    Dernier message: 12/08/2002, 19h37
  2. [Kylix] [cgi] pb d�ploiement appli avec connexion MySQL [r�s
    Par Nepomiachty Olivier dans le forum EDI
    R�ponses: 3
    Dernier message: 06/08/2002, 20h09
  3. Probleme C++Builder et Mysql
    Par noname dans le forum C++Builder
    R�ponses: 3
    Dernier message: 20/06/2002, 13h40
  4. connection a une BDD MySql
    Par delire8 dans le forum MFC
    R�ponses: 7
    Dernier message: 19/06/2002, 18h18
  5. [Kylix] Pb connection � Mysql
    Par Anonymous dans le forum EDI
    R�ponses: 3
    Dernier message: 25/04/2002, 15h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo