Python 我的痒蜘蛛罐';t从下一页提取数据
因此,我被要求从一个网站上抓取所有的工作细节,但是我的蜘蛛成功地获得了下一页的链接,但只提取了第一页的数据Python 我的痒蜘蛛罐';t从下一页提取数据,python,web-scraping,pagination,scrapy,Python,Web Scraping,Pagination,Scrapy,因此,我被要求从一个网站上抓取所有的工作细节,但是我的蜘蛛成功地获得了下一页的链接,但只提取了第一页的数据 这是我的蜘蛛: name = 'jobs' allowed_domains = ['www.tanitjobs.com/jobs'] start_urls = ['https://www.tanitjobs.com/jobs'] def parse(self, response): pass all_jobs = response.css(".listing-item_
这是我的蜘蛛:
name = 'jobs'
allowed_domains = ['www.tanitjobs.com/jobs']
start_urls = ['https://www.tanitjobs.com/jobs']
def parse(self, response):
pass
all_jobs = response.css(".listing-item__jobs")
for job in all_jobs:
item = {
'jobname' : job.css("article.listing-item div.listing-item__title a::text").getall(),
"companyname" : job.css(".listing-item__info--item-company::text").extract(),
"city" : job.css(".listing-item__info--item-location::text").extract() ,
}
yield item
next_page = response.css(".pad_right_small a ::attr(href)").extract_first()
if next_page:
next_page = response.urljoin(next_page)
yield scrapy.Request(url=next_page, callback=self.parse)
如果有人知道问题出在哪里,我真的需要你的帮助和提前感谢
allowed_domains=['www.tanitjobs.com/jobs']
由于它的变量名是一个死赠品,因此只应将允许的域放在该列表中,并且其中包含一个部分URL,这会导致异地筛选器拒绝该请求
除非您另有特殊需要,否则我建议仅在该值中列出基本域:
allowed_domains = ['tanitjobs.com']
我相信a和::attr(href)之间的空格是错误的,而且您可能需要将链接设置为绝对链接。@pguardiario它是绝对的,我只是使用urljoin来实现这一点