我有一個蜘蛛,開始於蜘蛛開始時的一個小列表allowed_domains
。我需要動態地將更多的域添加到此白名單中,因爲蜘蛛程序從解析器中繼續進行,但由於後續請求仍在過濾中,因此下面的一段代碼無法完成。解析器中是否有更新allowed_domains
?動態添加到Scrapy蜘蛛的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)
...
到OP:僅供參考,我不認爲目前接受的答案真的會解決你的問題。查看該答案留下的評論。 – starrify 2015-10-08 05:52:44