CSS 定位器返回空列表

css locator returns empty list

提问人:mohamed sultan 提问时间:10/9/2023 更新时间:10/10/2023 访问量:43

问:

我正在制作一个关于DataCamp的网页抓取课程:D

在会话中,我们正在抓取 Datacamp 网站以获取课程名称和 URL 然而 我正在尝试在我的 PC 上的 PyCharm 上达到相同的结果,

不幸的是,什么也没发生

我尝试过许多CSS定位器,但相同的结果总是空列表

你能指导我出了什么问题吗?

from scrapy import 选择器导入请求

url = 'https://www.datacamp.com/courses-all' html = requests.get(url).content sel = 选择器 ( text = html)

courses_names = sel.css('section.css-6b6e9e-search>article.css-1t5b87c-HitCard>h2.css-172ju3k-box ::text').extract()

打印(courses_names)

python web-scraping scrapy 选择器

评论

0赞 Alexander 10/9/2023
如果收到错误或异常,则应将其与完整的回溯一起发布。我不确定这是否是导致您问题的原因,但我很确定您正在尝试将字节对象馈送到 scrapy 选择器的文本参数中。
0赞 mohamed sultan 10/10/2023
我没有错误,只是空单元格......就像选择器没有找到任何东西一样,即使我使用了这个代码 框 = sel.css('div ::text').extract()

答:

0赞 Ahmed Ellaban 10/10/2023 #1

没有足够的信息,所以我只会解释你在做什么 从我可以看到的CSS选择器中,您正在使用通用选择器

sel.css('section.css-6b6e9e-Search>article.css-1t5b87c-HitCard>h2.css-172ju3k-Box ::text').extract()

你不应该这样做,也许是因为网站可能每次都会更改类名

只是,从开发工具检查该选择器是否在该网站上工作 并尝试打印

sel.css('section > article').get()

如果该选择器正确,它应该打印 HTML 标签

希望您在网络抓取方面好运

评论

0赞 mohamed sultan 10/10/2023
不幸的是,我使用了这段代码 courses_names = sel.css('section > article').get() 结果是 NONE ...我能问你天气这与该网站正在使用 Java 脚本有任何关系吗?我发现一些信息是这样说的,但我什至不知道如何处理它......有些人建议我使用硒.那么你的意见是什么非常感谢你
0赞 Ahmed Ellaban 10/11/2023
Assalamu alaikum 首先我也这么认为,但是,你说你正在遵循教程,所以我认为你的老师可以得到这些数据,所以你也应该得到它,但如果网站已经更新,是的,那可能是问题所在