Kam*_*san 2 python scrapy web-scraping
我的目标是当我迭代 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.")
Run Code Online (Sandbox Code Playgroud)
出现此行为的原因是您设置了allowed_domains = ['www.basis.org.bd'],这会阻止对 的请求basis.org.bd。您可以allowed_domains完全省略或扩展允许的域列表,如下所示:
allowed_domains = ['www.basis.org.bd', 'basis.org.bd']
Run Code Online (Sandbox Code Playgroud)
allowed_domains 请参阅此处的文档以获取更多信息。
| 归档时间: |
|
| 查看次数: |
2247 次 |
| 最近记录: |