Bonjour,
Je sollicite l'aide des d�veloppeurs Python et qui connaisse le Framework "Scrapy" et aussi les autres.
Je suis nouveau dans le monde python et encore plus avec Scrapy.
Mon projet :
R�cup�rer tous les produits qui m'int�resse sur Cdiscount.
Ex:
Je voudrais r�cup�rer tous les ordinateurs portables qui se trouve � cette URL.
http://www.cdiscount.com/informatiqu...l-1070922.html
j'ai analys� la structure HTML de la page, ce qui m'int�resse se trouve dans
Comme dit dans mon code j'aimerais rapatrier ce qui se trouve dans la "class = plViewZone_1" et "class = plViewZone_2"
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13 <div class="mainColumn Pl"> <div class="boxSimple pad05em list" id="productList"> <div class="plProductView" data-sku="F552CLSX236H"> <div class="plViewZone_1"> RAPATRIER Tous ce qui se trouve ici </div> <div class="plViewZone_2"> RAPATRIER Tous ce qui se trouve ici </div> </div> </div> </div>
Donc la marque du PC, l'image, la description, le nom ainsi que le lien vers la page qui se trouve dans un HREF avec le nom du PC et la balise "data-sku" qui se trouve dans la "class = plProductView".
Voici mon Crawler :
Mon Item:
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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 from scrapy.contrib.spiders import CrawlSpider, Rule from scrapy.selector import Selector from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor from enPromos.items import EnpromosItem class CDiscount(CrawlSpider): name = 'cdiscount' allowed_domains = ['cdiscount.com'] start_urls = ['http://www.cdiscount.com'] rules = ( Rule (SgmlLinkExtractor( deny = ( '\/about','\/maison\/','\/chaussures\/', '\/pret-a-porter\/','\/bijouterie\/', '\/bagages\/','\/le-sport\/','\/vin-champagne\/', '\/au-quotidien\/','\/juniors\/','\/dvd\/','\/livres-bd\/', '\/tout\/','\/carte-cdiscount\/','/mentions-legales.html', '\/culture-multimedia\/','/plan-du-site.asp') ), callback='parse_item'), ) def parse_item(self, response): self.log('la page est %s' % response.url) url_crawl = open('url.txt', 'a') url_crawl.write(str(response.url) + '\n') url_crawl.close() # my item my_item = EnpromosItem() # selector methode call sel = Selector(response) my_item['id'] = sel.xpath('//div[@class="plProductView"]/@data-sku').extract() my_item['name'] = sel.xpath('//a[@class="plPrName"]/@title').extract() my_item['descrip'] = sel.xpath('//span[@class="plPrDesc"]/@data-longdesc').extract() my_item['img'] = sel.xpath('//div[@class="plProductImg"]/img/@src').extract() my_item['brand'] = sel.xpath('//img[@class="plLogo"]/@src').extract() return my_item
Mon code actuel fonctionne pour le "data-sku" mais pour le reste cela ne fonctionne pas. N'�tant pas tr�s � l'aise avec le XPATH je sollicite votre aide et vos lumi�res.
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 # Define here the models for your scraped items # # See documentation in: # http://doc.scrapy.org/en/latest/topics/items.html from scrapy.item import Item, Field class EnpromosItem(Item): # define the fields for your item here like: id = Field() name = Field() descrip = Field() img = Field() brand = Field()
Cordialement,
Partager