python - 我的 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__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']
推荐阅读
- javascript - 当 Internet 连接从 ON 更改为 OFF 时,Snackbar 不显示
- java - 为透明度叠加添加模糊效果
- python-3.x - 根据pandas中的其他列修改列数据
- ms-word - 在word文档中添加两个单独表格的总数
- arrays - 在 Swift 中混合部分 KeyPath 和数组
- java - 如何在改造中解析嵌套的 Json 数组?
- sql - 有没有办法在 SQL 中自动填充日期
- r - 按序列分组,然后在列中找到最小值
- git - GitHub/Azure Repos 上的服务器端自定义 git 合并驱动程序
- javascript - NodeJS:process.env.PORT 的值是如何分配的?