Ich kratze eine Menge Daten von der UCAS-Website (mit Mechanize Gem) und habe das meiste funktioniert, aber wenn ich versuche, die Einreiseanforderungen aus Schottland zu ziehen, stoße ich in Schwierigkeiten. Unten ist der Code, den ich verwendet habe, die Zugangsvoraussetzungen zu finden und zu kratzen:Rails Mechanize datascrape Abfrage/Reinigung Ergebnisse
entry_link = course_details.search('ul.details_tabs a').first
if entry_link
# If there is a link to a qualification page for the course go to that
details_info[:entry] = process_entry(@mechanize.get(entry_link["href"]))
end
end
def process_entry(entry_req)
entry_array = []
entry_info = {}
# Sets all data in hash
@requirements = entry_req.search('li.qual-element.qual_range').text.strip
entry_info[:req] = @requirements
#Pushes to array, and prints
entry_array.push(entry_info)
print_entry_info(entry_info)
Was gibt jedoch nicht so toll ist. Anstatt nur ein Ergebnis der Rückkehr entweder Scottish Highers oder Advanced Highers zieht es beide und gibt sie als solche:
BBB Typical offerAABB Typical offer
Gibt es trotzdem zu jeder Zone in und nur die BBB oder die AABB oder einen Weg ziehen, um strippen Sie es mit gsub oder etwas ab, um nur die AABB oder die BBB anzuzeigen? Jede Hilfe wird geschätzt.
Link zu einer Beispielseite, wo solche Daten gezogen werden würde: http://search.ucas.com/course/entryrequirements/448323/anthropology?Vac=2&AvailableIn=2016&IsFeatherProcessed=True&ret=providers#coursedetailsmenu
Bitte lesen Sie "[ask]" und "[mcve]". Wir müssen den minimalen Code und die minimalen Daten sehen, die das Problem in der Frage selbst zeigen. –
'course_details.search ('ul.details_tabs a'). First' ist besser geschrieben als' course_details.at ('ul.details_tabs a') '. –