2009-09-18 6 views
1

HI, j'ai une liste de 10 sites Web au format CSV. Tous les sites ont le même format général, y compris une grande table. Je veux seulement les données dans les 7èmes colonnes. Je suis capable d'extraire le html et de filtrer les données de la 7ème colonne (via RegEx) sur une base individuelle mais je n'arrive pas à comprendre comment faire une boucle dans le fichier CSV. Je pense que je suis proche mais mon script ne fonctionnera pas. J'apprécierais vraiment que quelqu'un puisse m'aider à comprendre comment faire cela. Voici ce que j'ai:Python Web-Scrape Loop via la liste CSV des URL?

#Python v2.6.2 

import csv 
import urllib2 
import re 

urls = csv.reader(open('list.csv')) 
n =0 
while n <=10: 
    for url in urls: 
     response = urllib2.urlopen(url[n]) 
     html = response.read() 
     print re.findall('td7.*?td',html) 
     n +=1 

Répondre

2

Lorsque j'ai copié votre routine, j'ai eu une erreur d'espace blanc/erreur de tabulation. Vérifiez vos onglets. Vous avez mal indexé dans la chaîne d'URL en utilisant votre compteur de boucle. Cela t'aurait aussi foutu en l'air.

De plus, vous n'avez pas vraiment besoin de contrôler la boucle avec un compteur. Cela fera une boucle pour chaque entrée de ligne dans votre fichier CSV.

#Python v2.6.2 

import csv 
import urllib2 
import re 

urls = csv.reader(open('list.csv')) 
for url in urls: 
    response = urllib2.urlopen(url[0]) 
    html = response.read() 
    print re.findall('td7.*?td',html) 

Enfin, assurez-vous que vos URL sont correctement formés:

http://www.cnn.com 
http://www.fark.com 
http://www.cbc.ca 
+0

Merci! J'essayais cette approche auparavant, mais seulement un retour par valeur de liste - ie: [0] ne donnait que des données col7 pour la première URL, [1] donnait seulement des données col7 pour la seconde, etc. Votre seconde note le scellait: comme mes URL étaient dans le mauvais format - par exemple: http: //www.cnn.com,http: //www.fark.com,http: //www.cbc.ca - cela a fonctionné une fois que j'ai changé à votre format. On dirait que j'ai besoin d'en savoir plus sur le formatage Python/CSV. Merci encore! – KenBurnsFan1

+0

Aussi, agréable de recevoir de l'aide d'un Cannuck! Le côté de ma mère règne à SaltSpring Island/Vancouver/Victoria - j'étais très tenté d'assister à l'UVIC. BC est folle belle. – KenBurnsFan1