Scrapy CSS选择器通配符求助:匹配动态ID提取推文内容
解决推文文本批量提取的问题
嘿,刚接触网页爬取遇到这个问题很正常,我来帮你搞定!
你原来的CSS选择器是针对单个特定ID的推文,要匹配所有以stream-item-tweet-开头的推文元素,只需要把固定ID换成CSS属性前缀选择器就可以了。
修改后的代码
response.css('[id^="stream-item-tweet-"] > div:nth-child(1) > div:nth-child(2) > div:nth-child(2) > p:nth-child(1)::text').extract()
关键说明
[id^="stream-item-tweet-"]是CSS的属性选择器,意思是匹配所有id属性值以stream-item-tweet-开头的元素,完美替代了原来的固定ID,实现批量匹配。- 后面的层级选择器保持不变,就能精准定位到每个推文里的文本内容了。
如果之后遇到页面结构变动的情况,也可以考虑用更稳定的类选择器(比如推文容器的类名),不过当前这个修改完全能满足你的需求~
内容的提问来源于stack exchange,提问作者Jake.bake
相关产品推荐
相关产品推荐

