2016-04-05 11 views
0

Die Ziel Webseite here ist, in denen es zwei Arten von Beiträgen:Scrapy: Extrakt weblinks aus zwei verschiedenen Arten von Beiträgen

Die Weblink eines im Haus Post ist in den folgenden HTML-Code:

<a class="ga_job" href="/jobseeker/job/26930563/blablabla"> 

Die Weblink eines Externe Post ist in verschiedenen hTML-Code:

<a class="ga_job" onclick="window.open('http://www.indeed.com/rc/blablalbla','_blank');return false;" href="#"> 

Was ich versuche zu erreichen ist: wenn @href ein berechtigtes Weblink enthält (in-house Beiträge), werde ich den folgenden Code verwenden, um die Weblink zu erhalten:

il.add_xpath('web_url', 'concat("http://careers.pathologyjobstoday.org", .//a[@class="ga_job"]/@href)') 

Wenn @href nur ein enthält " #“(für externe Beiträge), werde ich den folgenden Code für Weblink verwenden:

il.add_xpath('web_url', 'substring-before(substring-after(.//a[@class="ga_job"]/@onclick, "("),"&qd=")') 

ich habe versucht, if ... else-Codes, wie folgend, die nicht arbeiten:

for site in sites: 
     il = CAPjobsItemLoader(response=response, selector=site) 
     il.add_xpath('web_url', './/a[@class="ga_job"]/@href') #Get the @href 
     HREF_value = il.get_collected_values('web_url')[0] 
     if '#' in HREF_value: 
      il.add_xpath('web_url', 'substring-before(substring-after(.//a[@class="ga_job"]/@onclick, "("),"&qd=")') 
     else: 
      il.add_xpath('web_url', 'concat("http://careers.pathologyjobstoday.org", .//a[@class="ga_job"]/@href)') 

     yield il.load_item() 

die Ergebnisse Ich habe für uns b_url sind nur @href (ein Weblink für interne Posts oder ein '#' für externe Posts). Der Befehl if ... else funktioniert nicht.

+0

ich zusammen mit Hilfe von zwei Attributen, eine Lösung heraus (Es geschah mehr als einmal, dass ich hier eine Lösung kurz nach der Einlieferung meiner Fragen gefunden.) Siehe unten – LearnAWK

Antwort

0

Mein Problem kann zusammen mit Hilfe von zwei Attributen gelöst werden:

il.add_xpath('web_url', 'substring-before(substring-after(.//a[@class="ga_job" and @href="#"]/@onclick, "(\'"),"&qd=")') 
il.add_xpath('web_url', 'concat("http://careers.pathologyjobstoday.org", .//a[@class="ga_job"]/@href)') 
Verwandte Themen