我需要在我的刮刀中生成start_urls,其中Scrapy将填写邮政编码。只要它们遵循#####格式(我不认为Scrapy需要花费很长时间才能检查100k页面),我对那些不会生成实际邮政编码的丢失代码感到满意。 我在另一个问题上找到了这个,我希望它可以用最少的编辑工作。 (或者在scrapy中有更好的约定吗?)
class ExampleSpider(BaseSpider):
name = "test_code"
allowed_domains = ["www.example.com"]
def start_requests(self):
for i in xrange(100000):
yield self.make_requests_from_url("http://www.example.com/zipcode/%d/search.php" % i)
我需要更改以填写所有五位数字(00014,例如)?代码是否会像那样工作?另外,我需要另一个(单独的)来填写州名。同样地,除非有一种有效的方法告诉Python填写州缩写,否则我可以使用丢失的缩写。所以,例如www.example.com/AL/search.php和www.example.com/GA/search.php等我只想让它用任意两个字母自动填充这两个字母 - 我如何填写def start_requests(self)为此?
答案 0 :(得分:1)
对于邮政编码,请将其设为"%05d"
;这将告诉格式化程序使用零填充五个字符。
对于州,我建议迭代一个列表:
for state in ["AL", "GA", ...]:
# use state: "www.example.com/%s/search.php" % state