Ich versuche, Arbeitsblätter für dieses Training herunterzuladen, alle Trainingseinheiten sind an verschiedenen Tagen aufgeteilt. Alles, was getan werden muss, ist eine neue Nummer am Ende des Links hinzuzufügen. Hier ist mein Code.Iterieren durch die Liste beim Parsen
import urllib
import urllib.request
from bs4 import BeautifulSoup
import re
import os
theurl = "http://www.muscleandfitness.com/workouts/workout-routines/gain-10-pounds-muscle-4-weeks-1?day="
urls = []
count = 1
while count <29:
urls.append(theurl + str(count))
count +=1
print(urls)
for url in urls:
thepage = urllib
thepage = urllib.request.urlopen(urls)
soup = BeautifulSoup(thepage,"html.parser")
init_data = open('/Users/paribaker/Desktop/scrapping/workout/4weekdata.txt', 'a')
workout = []
for data_all in soup.findAll('div',{'class':"b-workout-program-day-exercises"}):
try:
for item in data_all.findAll('div',{'class':"b-workout-part--item"}):
for desc in item.findAll('div', {'class':"b-workout-part--description"}):
workout.append(desc.find('h4',{'class':"b-workout-part--exercise-count"}).text.strip("\n") +",\t")
workout.append(desc.find('strong',{'class':"b-workout-part--promo-title"}).text +",\t")
workout.append(desc.find('span',{'class':"b-workout-part--equipment"}).text +",\t")
for instr in item.findAll('div', {'class':"b-workout-part--instructions"}):
workout.append(instr.find('div',{'class':"b-workout-part--instructions--item workouts-sets"}).text.strip("\n") +",\t")
workout.append(instr.find('div',{'class':"b-workout-part--instructions--item workouts-reps"}).text.strip("\n") +",\t")
workout.append(instr.find('div',{'class':"b-workout-part--instructions--item workouts-rest"}).text.strip("\n"))
workout.append("\n*3")
except AttributeError:
pass
init_data.write("".join(map(lambda x:str(x), workout)))
init_data.close
Das Problem ist, dass die Server-mal aus, ich gehe davon aus es ist nicht richtig durch die Liste iterieren oder das Hinzufügen von Zeichen ich den Server-Parser nicht brauchen und abstürzt. Ich habe auch versucht, ein anderes Skript zu schreiben, das den ganzen Link ergreift und sie in ein Textdokument legt, dann öffne den Text in diesem Skript und wiederhole den Text, aber das gab mir auch den gleichen Fehler. Was sind deine Gedanken?
So verwende ich absichtlich URLs - URLs ist eine neue Liste, die ich mit theurl + Count in Zeile 7 erstellt habe. –
Oh! Ja ich sehe, lass es mich versuchen. –
Perfekt, das hat wunderbar funktioniert, danke für die extra Augen! –