CSS选择器如何实现字段
作者
这篇文章主要介绍CSS选择器如何实现字段,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
根据上面所学的CSS基础语法知识,现在来实现字段的解析。首先还是解析标题。打开网页开发者工具,找到标题所对应的源代码。
发现是在div class="entry-header"
下面的h2节点中,于是打开scrapy shell 进行调试
但是我不想要<h2>这种标签该咋办,这时候就要使用CSS选择器中的伪类方法。如下所示。
注意的是两个冒号。使用CSS选择器真的很方便。同理我用CSS实现字段解析。代码如下
#-*-coding:utf-8-*- importscrapy importre classJobboleSpider(scrapy.Spider): name='jobbole' allowed_domains=['blog.jobbole.com'] start_urls=['http://blog.jobbole.com/113549/'] defparse(self,response): #title=response.xpath('//div[@class="entry-header"]/h2/text()').extract()[0] #create_date=response.xpath("//p[@class='entry-meta-hide-on-mobile']/text()").extract()[0].strip().replace("·","").strip() #praise_numbers=response.xpath("//span[contains(@class,'vote-post-up')]/h20/text()").extract()[0] #fav_nums=response.xpath("//span[contains(@class,'bookmark-btn')]/text()").extract()[0] #match_re=re.match(".*?(\d+).*",fav_nums) #ifmatch_re: #fav_nums=match_re.group(1) #comment_nums=response.xpath("//a[@href='#article-comment']/span").extract()[0] #match_re=re.match(".*?(\d+).*",comment_nums) #ifmatch_re: #comment_nums=match_re.group(1) #content=response.xpath("//div[@class='entry']").extract()[0] #通过CSS选择器提取字段 title=response.css(".entry-headerh2::text").extract()[0] create_date=response.css(".entry-meta-hide-on-mobile::text").extract()[0].strip().replace("·","").strip() praise_numbers=response.css(".vote-post-uph20::text").extract()[0] fav_nums=response.css("span.bookmark-btn::text").extract()[0] match_re=re.match(".*?(\d+).*",fav_nums) ifmatch_re: fav_nums=match_re.group(1) comment_nums=response.css("a[href='#article-comment']span::text").extract()[0] match_re=re.match(".*?(\d+).*",comment_nums) ifmatch_re: comment_nums=match_re.group(1) content=response.css("div.entry").extract()[0] tags=response.css("p.entry-meta-hide-on-mobilea::text").extract()[0] pass
以上是“CSS选择器如何实现字段”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注恰卡编程网行业资讯频道!
目录
推荐阅读
0 条评论
本站已关闭游客评论,请登录或者注册后再评论吧~