スパイダーの開始時に小さなリストで始まるスパイダーがありallowed_domains
ます。パーサー内からスパイダリングが続行されるため、このホワイトリストにドメインを動的に追加する必要がありますが、後続のリクエストがまだフィルタリングされているため、次のコードはそれを達成できません。allowed_domains
パーサー内で別の更新はありますか?
class APSpider(BaseSpider):
name = "APSpider"
allowed_domains = ["www.somedomain.com"]
start_urls = [
"http://www.somedomain.com/list-of-websites",
]
...
def parse(self, response):
soup = BeautifulSoup( response.body )
for link_tag in soup.findAll('td',{'class':'half-width'}):
_website = link_tag.find('a')['href']
u = urlparse.urlparse(_website)
self.allowed_domains.append(u.netloc)
yield Request(url=_website, callback=self.parse_secondary_site)
...