def parse(self, response):
countries = response.xpath('//div[@class="state-names-list-us"]/ul/a')
for country in countries:
link = country.xpath(".//@href").get()
yield response.follow(url=link, callback=self.parse_frame)
def parse_frame(self, response):
holder = response.xpath('//div[@class ="hs_cos_wrapper hs_cos_wrapper_widget '
'hs_cos_wrapper_type_rich_text"]/iframe')
for hold in holder:
test = hold.xpath('.//@src').get()
yield response.follow(url=test)
parse方法获取到一个页面的链接,然后parse_frame使用该链接获取另一个链接,该链接包含要抓取的信息。
parse_frame得到了第一次迭代的链接,但没有得到其余迭代的链接。我应该如何解决这个问题,因为我希望得到所有迭代的链接。如果你看一下输出,它只得到了第一次迭代的链接。
{2022-07-21 14:18:33 [报废.核心.引擎]调试:已爬网(200)〈GET https://www.insulators.org/union-directory/mississippi>(参考:[Scrapy.蜘蛛中间件.非现场]调试:已筛选对“www.example.com”的非现场请求www.hfiunionhall.org:〈GET https://www.hfiunionhall.org/pages/localDetails.asp?where=DE&searchType=State>}
1条答案
按热度按时间6ioyuze21#
下面的代码并不简单,但是它可以在更小的复杂性预算下完成这项工作: