使用Scrapy的response.css返回空列表的问题求助
为什么Scrapy选择器返回空列表?
可能的原因及解决办法
页面内容由JavaScript动态加载
很多现代网站会通过JavaScript异步加载职位列表这类内容,Scrapy默认获取的是服务器返回的原始HTML,并没有执行页面中的JS代码,自然找不到动态生成的元素。
解决:可以使用scrapy-splash或playwright这类支持JS渲染的工具,获取渲染完成后的页面内容再进行解析。CSS选择器与实际页面结构不符
你使用的div.jobTitle a::attr(href)可能和当前页面的元素结构不匹配——比如页面中实际的类名是job-title而非jobTitle,或者职位链接不在这个div节点下。
解决:打开浏览器开发者工具,定位到目标链接元素,复制正确的CSS选择器后再尝试。请求被反爬机制拦截
网站可能识别出Scrapy的爬虫请求,返回了空页面或非预期内容。
解决:在请求中添加浏览器样式的User-Agent头模拟正常访问,比如在Scrapy Shell中这样测试:scrapy shell -s USER_AGENT="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" https://jobs.goodlifefitness.com/listjobs/之后再执行选择器查看结果。
内容的提问来源于stack exchange,提问作者codingLearner99
相关产品推荐
相关产品推荐

