片子列表页
- def detail_page(self, response):
- return {
- "url": response.url,
- "title": response.doc('HTML>BODY>DIV#wrapper>DIV#content>H1>SPAN').text(),
- "rating": response.doc('HTML>BODY>DIV#wrapper>DIV#content>DIV.grid-16-8.clearfix>DIV.article>DIV.indent.clearfix>DIV.subjectwrap.clearfix>DIV#interest_sectl>DIV.rating_wrap.clearbox>P.rating_self.clearfix>STRONG.ll.rating_num').text(),
- "导演": [x.text() for x in response.doc('a[rel="v:directedBy"]').items()],
- }
再次点击 run 让我们进入一个片子列表页(list_page)。在这个页面中我们须要提取:
- 片子的链接,例如,http://movie.douban.com/subject/1292052/
- 下一页的链接,用来翻页
CSS选择器
CSS选择器,顾名思义,是 CSS 用来陡位须要设制揭捉?式的元素 所应用的表达式。既然前端法度榜样员都应用 CSS选择器 为页面上的不合元素设制揭捉?式,我们也可以经由过程它陡位须要的元素。你可以在 CSS 选择器参考手册 这里进修更多的 CSS选择器 语法。
在 pyspider 中,内置了 response.doc 的 PyQuery 对象,让你可以应用类似 jQuery 的语法操作 DOM 元素。你可以在 PyQuery 的页面上找到完全的文档。
CSS Selector Helper
在 pyspider 中,还内置了一个 CSS Selector Helper,当你点击页面上的元素的时刻,可以帮你生成它的 CSS选择器 表达式。你可以点击 Enable CSS selector helper 按钮,然后切换到 web 页面:
因为 片子列表页和 tag列表页长的并不一样,在这里新建了一个 callback 为 self.list_page
- @config(age=10 * 24 * 60 * 60) 在这表示我们认为 10 天内页面有效,不会再次进行更新抓取
- 因为 pyspider 是纯 Python 情况,你可以应用 Python 强大年夜的内置库,或者你熟悉的第三方库对页面进行解析。不过更推荐应用 CSS选择器。
开启后,鼠标放在元素上,会被黄色高亮,点击后,所有拥有雷同 CSS选择器 表达式的元素会被高亮。表达式会被插入到 python 代码当前光标地位。创建下面的代码,将光标逗留在单引号中心:
- def list_page(self, response):
- for each in response.doc('').items():
点击一个片子的链接,CSS选择器 表达式将会插入到你的代铝闼楝如斯反复,插入翻页的链接:
片子详情页
再次点击 run,follow 到详情页。应用 css selector helper 分别添加片子标题,打分和导演:
留意,你会发明 css selector helper 并不是老是能提取到合适的 CSS选择器 表达式。你可以在 Chrome Dev Tools 的赞助下,写一个合适的表达式:
推荐阅读
Windows 10 S怎么样?Windows 10 S六大新特性介绍
可能很多同伙会问Windows10 S体系怎么样?Windows10 S体系是5月2日微软推出的Windows10简化版体系,重要针对教导市场、学生用户,拥有开机快、价格便宜、兼容性更好,硬件请求更低等特点。>>>详细阅读
地址:http://www.17bianji.com/lsqh/35127.html
1/2 1