Ich habe eine Liste von NPIs, die ich die Namen der Anbieter für kratzen wollen von npidb.org Die NPI-Werte sind in einer CSV-Datei gespeichert.Crawl Website von der Liste der Werte mit scrapy
Ich kann es manuell tun, indem Sie die URLs im Code einfügen. Ich bin jedoch nicht in der Lage herauszufinden, wie es geht, wenn ich eine Liste von NPIs habe, für die ich den Namen des Anbieters haben möchte.
Hier ist mein aktueller Code ist:
import scrapy
from scrapy.spider import BaseSpider
class MySpider(BaseSpider):
name = "npidb"
def start_requests(self):
urls = [
'https://npidb.org/npi-lookup/?npi=1366425381',
'https://npidb.org/npi-lookup/?npi=1902873227',
]
for url in urls:
yield scrapy.Request(url=url, callback=self.parse)
def parse(self, response):
page = response.url.split("/")[-1]
filename = 'npidb-%s.html' % page
with open(filename, 'wb') as f:
f.write(response.body)
self.log('Saved file %s' % filename)
Sie möchten alle "npi" -Werte über eine Befehlszeile bereitstellen? Textdatei? – eLRuLL
Die NPIs werden in einer CSV-Datei gespeichert, die von einem anderen Code abgeleitet wurde. –
Wie ist die Struktur der CSV-Datei? Wenn Sie jede URL als Eintrag pro Zeile hätten, könnten Sie etwas schreiben wie: open (file_name) .read(). Split() und eine Liste aller Zeilen erhalten. –