<p>检查此代码:</p>
<pre><code>import scrapy
class ProductsSpider(scrapy.Spider):
name = "gaming"
def __init__(self, product='', **kwargs):
self.start_urls = [
f'https://www.czone.com.pk/search.aspx?kw={product}',
f'https://pcfanatics.pk/search?type=product&q={product}',
f'https://gtstore.pk/searchresults.php?inputString={product}',
]
super().__init__(**kwargs)
def start_requests(self):
for s_url in self.start_urls:
yield scrapy.Request(
url=s_url,
callback=self.parse,
)
def parse(self, response):
print(self.name)
... do parse things ...
</code></pre>
<p>在scrapy spider中获取输入的正确方法是在运行时使用<code>-a</code>选项,例如,要运行此spider,您应该使用:</p>
<pre><code>scrapy crawl gaming -a product='foo'
</code></pre>
<p>或</p>
<pre><code>scrapy runspider <spider_filename> -a product='foo'
</code></pre>
<p>URL错误可能是由于格式错误,使用</p>
<pre><code> f'https://www.czone.com.pk/search.aspx?kw={product}',
f'https://pcfanatics.pk/search?type=product&q={product}',
f'https://gtstore.pk/searchresults.php?inputString={product}',
</code></pre>
<p>没有给我任何问题</p>