J'utilise scrapy avec le fichier csv en entrée, mais je veux utiliser un dossier avec à l'intérieur du fichier csv à utiliser en entrée parce que mon csv est trop grand pour utiliser directement je le diviser en plusieurs fichiers .scrapy avec le dossier comme une entrée
Le début de mon script de travail est ici:
class mySuper(CrawlSpider):
name="super"
f = open("/root/super/super/urls.csv")
allowed_domains = [url.strip() for url in f.readlines()]
f = open("/root/super/super/urls.csv")
start_urls = ['http://www.'+url.strip() for url in f.readlines()]
f.close()
rules = (Rule (LinkExtractor(allow=('(.*)[C-c]ontact','(.*)legal','(.*)mention','(.*)information'),deny=('(.*)='),restrict_xpaths=()), callback="parse_start_url", follow=False),)
def parse_start_url(self,response):
J'essaie cela, mais faut-il que le dernier fichier dans le répertoire:
import os
class mySuper(CrawlSpider):
name="super"
directory = os.path.join("c:\\","/root/super/super/csv")
for root,dirs,files in os.walk(directory):
for file in files:
f = open("/root/super/super/csv/"+file,'r')
allowed_domains = [url.strip() for url in f.readlines()]
f = open("/root/super/super/csv/"+file,'r')
start_urls = ['http://www.'+url.strip() for url in f.readlines()]
f.close()
rules = (Rule (LinkExtractor(allow=('(.*)[C-c]ontact','(.*)legal','(.*)mention','(.*)information'),deny=('(.*)='),restrict_xpaths=()), callback="parse_start_url", follow=False),)
def parse_start_url(self,response):
Merci pour vos entrées!
Merci, j'essaie, mais a échoué: Traceback (appel le plus récent en dernier): Fichier « /usr/local/lib/python2.7/dist-packages/scrapy/core/engine .py ", ligne 127, dans _next_request request = next (slot.start_requests) Fichier" /root/super/super/spiders/mySuper.py ", ligne 74, dans start_requests self.allowed_domains.append (domaine) AttributeError: l'objet 'set' n'a pas d'attribut 'append' –
Ahh J'ai changé de tableau pour définir ce dernier. Changer 'self.allowed_domains.append (domaine)' en 'self.allowed_domains.add (domaine)' –