我有一个蜘蛛,开始于蜘蛛开始时的一个小列表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