Ich begann gerade Python und Scrapy zu lernen.Bei der Verwendung von Scrapy, Crawlen 0 Seiten (bei 0 Seiten/min) Scrapped 0 Elemente (bei 0 Elementen/Minute)
Mein erstes Projekt ist das Crawlen von Informationen auf einer Website mit Web-Sicherheitsinformationen. Aber wenn ich laufe, dass cmd, heißt es, dass
0 Seiten gecrawlt (bei 0 Seiten/min) 0 Produkte gekratzt (bei 0 Produkte/min)
und nichts zu kommen scheint. Ich wäre dankbar, wenn jemand mein Problem lösen könnte.
Folgende ist meine Spinne Datei:
from ssl_abuse.items import SslAbuseItem
import scrapy
class SslAbuseSpider(scrapy.Spider):
name='ssl_abuse'
start_urls=['https://sslbl.abuse.ch/']
def parse(self, response):
for sel in response.xpath('/table//tr'):
item=SslAbuseItem()
item['date']=sel.xpath('/td/text()')[0].extract()
item['name']=sel.xpath('/td/text()')[2].extract()
item['type']=sel.xpath('/td/text()')[3].extract()
yield item
Im Anschluss an der Website, die ich bin zu kriechen:
https://sslbl.abuse.ch/
Ich wünsche alle Elemente dieses Diagramm außer SHA1-Fingerabdruck zu bekommen ..
Nachdem ich meinen Code geändert habe, wie Will sagte, kommt ein Fehler auf:
`2017-01-04 09:31:40 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2017-01-04 09:31:40 [scrapy.extensions.telnet] DEBUG: Telnet console listening on 127.0.0.1:6023
2017-01-04 09:31:42 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://sslbl.abuse.ch/robots.txt> (referer: None)
2017-01-04 09:31:52 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://sslbl.abuse.ch/> (referer: None)
2017-01-04 09:31:53 [scrapy.core.scraper] ERROR: Spider error processing <GET https://sslbl.abuse.ch/> (referer: None)
Traceback (most recent call last):
File "c:\python27\lib\site-packages\scrapy\utils\defer.py", line 102, in iter_errback
yield next(it)
File "c:\python27\lib\site-packages\scrapy\spidermiddlewares\offsite.py", line 29, in process_spider_output
for x in result:
File "c:\python27\lib\site-packages\scrapy\spidermiddlewares\referer.py", line 22, in <genexpr>
return (_set_referer(r) for r in result or())
File "c:\python27\lib\site-packages\scrapy\spidermiddlewares\urllength.py", line 37, in <genexpr>
return (r for r in result or() if _filter(r))
File "c:\python27\lib\site-packages\scrapy\spidermiddlewares\depth.py", line 58, in <genexpr>
return (r for r in result or() if _filter(r))
File "V:\work\ssl_abuse\ssl_abuse\spiders\ssl_abuse_spider.py", line 11, in parse
item['date']=sel.xpath('/td/text()')[0].extract()
File "c:\python27\lib\site-packages\parsel\selector.py", line 58, in __getitem__
o = super(SelectorList, self).__getitem__(pos)
IndexError: list index out of range`
Meine aktualisierten Code: `
from ssl_abuse.items import SslAbuseItem
import scrapy
class SslAbuseSpider(scrapy.Spider):
name='ssl_abuse'
start_urls=['https://sslbl.abuse.ch/']
def parse(self, response):
for sel in response.xpath('//table//tr'):
item=SslAbuseItem()
item['date']=sel.xpath('/td/text()')[0].extract()
item['name']=sel.xpath('/td/text()')[2].extract()
item['type']=sel.xpath('/td/text()')[3].extract()
yield item`
ich meine Codes aktualisiert, aber ein Fehler kommen up ... –
können Sie den Pfad zu 'td/text() ändern' den Anfang '/' entfernen? Der angegebene Pfad '/ td/text()' hat keine Elemente gefunden. Deshalb haben Sie einen 'out of index'-Fehler erhalten, als Sie versuchten, den ersten Gegenstand zu bekommen. item ['date'] = sel.xpath ('/ td/text()') [0] .extract() – Will
Ich habe gerade festgestellt, dass der xpath zum Suchen von Text in meiner Antwort falsch war. Jetzt habe ich den Anfang '/' entfernt. – Will