Я хочу рекурсивно удалить авторов Google-ученых (от автора-инициатора -> найти всех его соавторов) и остановиться после достижения максимального количества. Это код, который может понять все авторы, имеющие начальный URL. Однако, как мы можем просмотреть новых авторов и сделать это рекурсивно, а затем остановиться, получив около 1000 уникальных авторов?
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
class GoogleScholarSpider(CrawlSpider):
#name of the spider
name = 'googlescholar'
#list of allowed domains
allowed_domains = ['www://scholar.google.com']
#starting url for scraping
start_urls = ['https://scholar.google.com/citations?user=IT-vb_kAAAAJ&hl=en&oi=sra']
#setting the location of the output csv file
custom_settings = {
'FEED_URI' : 'tmp/gscholar.csv'
}
rules = (Rule(SgmlLinkExtractor(), callback="parse", follow= True),) ## NOT WORKING
def parse(self, response):
#Remove XML namespaces
response.selector.remove_namespaces()
scholar_name = response.xpath('//body/div/div/div/div/div/div/ul/li/div/span/a/text()').extract() ## get value inside tag
for item in zip(scholar_name):
scraped_info = {
'scholar_name' : item[0],
}
yield scraped_info