2017-03-22 4 views
-1

zu kratzen Ich versuche, die Tabelle auf http://www.casemanagementguidebook.ie/Case-Management-Listings/Accommodation---Homelessness.aspx zu kratzen, so dass ich alle Werte in MySQL-Datenbank eingeben kann. Beim Versuch, es in einer Schale zu tun, habe ich die Befehle versuchtVersuchen, einen Tisch mit Scrapy

table = response.css('table.listing-table')[0] 

, die mir einen Tabellenwert

table = Selector xpath=u"descendant-or-self::table[@class and contains(concat(' ', normalize-space(@class), ' '), ' listing-table ')]" data=u'<table cellpadding="0" cellspacing="0" b' 

zeigt gegeben hat Wie greife ich auf die Daten? Ich habe versucht, den Befehl

access = table.css("data").extract() 

mit und versuchte auch

access = table.css("tbody tr td").extract() 

Beide, die eine leere Menge zurückgegeben haben. Welchen Pfad oder Befehl fehlt mir, um auf die TDs innerhalb der Tabelle zuzugreifen?

Antwort

1

Also was Sie suchen, ist das <td> Element in jeder Tabellenzeile <tr>.

Damit Sie

  1. Need
  2. Iterate durch jede Zeile der Tabelle alle Tabellenzeilen zuerst wird zu tun, wählen und die <td> Elemente für jeden von ihnen finden.

So:

trs = response.css('.listing-table tr') 
for tr in trs: 
    tds = tr.css('td') 
    for td in tds: 
     print td.extract()