【发布时间】:2017-01-18 17:19:22
【问题描述】:
我有一个 NPI 列表,我想从 npidb.org 抓取提供者的名称 NPI 值存储在 csv 文件中。
我可以通过在代码中粘贴 URL 来手动完成。但是,如果我有一个 NPI 列表,每个我想要提供者名称,我就无法弄清楚该怎么做。
这是我当前的代码:
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)
【问题讨论】:
-
您想从命令行提供所有
npi值吗?文本文件? -
NPI 存储在从另一个代码派生的 csv 文件中。
-
csv文件的结构是什么?如果您将每个 URL 作为每行的条目,则可以编写如下内容: open(file_name).read().split() 并获取所有行的列表。
-
它们只是其中的 NPI。挑战是将它们粘贴到 URL 中并获取与每个 NPI 关联的名称。这可能是一件非常容易的事情,但我是一个完全的新手,无法破解它。
标签: python scrapy scrapy-spider scrapy-pipeline