我的目标是当我在get_membership_no方法中迭代for循环时,打印parse方法中的内容。
我正在使用python3.8.5,Scrapy 1.7.3,当我运行下面提到的代码时,我得到“过滤的场外请求”。
这是我的代码。
import scrapy
import json
class BasisMembersSpider(scrapy.Spider):
name = 'basis'
allowed_domains = ['www.basis.org.bd']
def start_requests(self):
yield scrapy.Request(url="https://basis.org.bd/get-member-list?page=1&team=", callback=self.get_membership_no)
def get_membership_no(self, response):
data_array = json.loads(response.body)['data']
for data in data_array:
yield scrapy.Request(url='https://basis.org.bd/get-company-profile/{0}'.format(data['membership_no']), callback=self.parse)
def parse(self, response):
print("I want to get this line on console. thank you.")
2条答案
按热度按时间c9x0cxw01#
出现此行为的原因是您设置了
allowed_domains = ['www.basis.org.bd']
,这会阻止对basis.org.bd
的请求。您可以完全忽略allowed_domains
,也可以如下扩展允许域列表:有关详细信息,请参阅此处的
allowed_domains
文档。6kkfgxo02#
删除
"www." from allowed_domains
对我很有效。谢谢这篇文章真的很有帮助