我需要创建一个从网站抓取一些数据的蜘蛛。部分数据是外部 URL。
我已经创建了从根站点抓取数据的蜘蛛,现在我想为外部网页编写蜘蛛。
我正在考虑创建一个使用 SgmlLinkExtractor 跟踪每个外部网页中的某些特定链接的爬虫。
将 start_url 列表传达给第二个蜘蛛的推荐方法是什么?
我的想法是为项目生成一个 json 文件并读取第二个蜘蛛的 start_requests 中的属性。
我需要创建一个从网站抓取一些数据的蜘蛛。部分数据是外部 URL。
我已经创建了从根站点抓取数据的蜘蛛,现在我想为外部网页编写蜘蛛。
我正在考虑创建一个使用 SgmlLinkExtractor 跟踪每个外部网页中的某些特定链接的爬虫。
将 start_url 列表传达给第二个蜘蛛的推荐方法是什么?
我的想法是为项目生成一个 json 文件并读取第二个蜘蛛的 start_requests 中的属性。
我已经创建了从根站点抓取数据的蜘蛛,现在我想为外部网页编写蜘蛛。
将这些外部页面 url 保存到数据库中。
将 start_url 列表传达给第二个蜘蛛的推荐方法是什么?
覆盖BaseSpider.start_requests
您的其他蜘蛛并从您从数据库获得的 url 创建请求。
这个问题很模糊,但这是一种方法(??)
class PracticeSpider(BaseSpider):
name = "project_name"
allowed_domains = ["my_domain.org"]
def start_requests(self):
start_urls = "The First Page URL"
return [Request(start_urls, callback=self.parse)]
def parse(self, response):
# parse the first page
yield self.pageParser(response)
# grab the external URLs you want to follow
ext_urls = ...
for url in ext_urls:
yield Request(url, callback=self.pageParser)
def pageParser(self, response):
# parse the page
return items
Request 中还有一个meta={}属性可能会有所帮助。