Je suis assez nouveau à la programmation donc je m'excuse si ma question est trop triviale. J'ai récemment suivi des cours d'Udacity comme «Intro to Computer Science», «Programmer des fondations avec Python» et d'autres.Comment puis-je améliorer ce morceau de code (grattage avec Python)?
L'autre jour, mon patron m'a demandé de collecter des adresses e-mail de certains sites Web. Certains d'entre eux avaient de nombreuses adresses sur la même page, la cloche sonnait et je pensais à créer mon propre code pour faire la tâche répétitive de collecter les e-mails et de les coller dans une feuille de calcul. Donc, après avoir passé en revue quelques-unes des leçons de ces corses et quelques vidéos sur YouTube, j'ai trouvé ce code. Notes: Il est écrit en Python 2.7.12 et j'utilise Ubuntu 16.04.
import xlwt
from bs4 import BeautifulSoup
import urllib2
def emails_page2excel(url):
# Create html file from a given url
sauce = urllib2.urlopen(url).read()
soup = BeautifulSoup(sauce,'lxml')
# Create the spreadsheet book and a page in it
wb = xlwt.Workbook()
sheet1 = wb.add_sheet('Contacts')
# Find the emails and write them in the spreadsheet table
count = 0
for url in soup.find_all('a'):
link = url.get('href')
if link.find('mailto')!=-1:
start_email = link.find('mailto')+len('mailto:')
email = link[start_email:]
sheet1.write(count,0,email)
count += 1
wb.save('This is an example.xls')
Le code fonctionne bien et c'est assez rapide. Cependant, je voudrais l'améliorer dans ces façons:
- j'ai eu le sentiment que la boucle pourrait être fait d'une façon plus élégante façon . Existe-t-il un autre moyen de rechercher l'e-mail en dehors de la recherche de chaîne? Juste d'une manière similaire dans laquelle trouvé les balises «a»?
- Je voudrais être en mesure d'évaluer ce code avec une liste de sites Web (très probablement dans une feuille de calcul) au lieu de l'évaluer uniquement avec une chaîne d'URL. Je n'ai pas encore eu le temps de faire des recherches sur la façon de le faire, mais toute suggestion est la bienvenue.
- Dernier point, mais non des moindres, je voudrais savoir s'il existe un moyen d'implémenter ce script dans une sorte de mini-programme convivial . Je veux dire, par exemple, mon patron est totalement mauvais sur les ordinateurs: je ne peux pas l'imaginer ouvrir un shell terminal et exécuter le code python. Au lieu de cela, j'aimerais créer un programme dans lequel elle pourrait simplement coller l'URL, ou télécharger une feuille de calcul avec les sites Web dont elle souhaite extraire les e-mails, choisir si elle souhaite extraire des e-mails ou d'autres informations. cliquez sur un bouton et obtenez le résultat.
J'espère que je me suis exprimé clairement. Merci à l'avance,
Anqin
Je vote pour clore cette question hors-sujet parce qu'elle semble mieux convenir à http://codereview.stackexchange.com/ – Stedy