作家
登录

pyspider爬虫教程:HTML和CSS选择

作者: 来源: 2017-05-10 15:07:52 阅读 我要评论

固然以前写过 若何抓取WEB页面 和 若何大年夜 WEB 页面中提守信息。然则感到照样须要一篇 step by step 的教程,不然没有一个总体的熟悉。不过,没想到这个教程居然会变成一篇译文,在这个爬虫教程系列文┞仿中,会以实际的例子,由浅入深评论辩论爬取(抓取和解析)的一些关键问题。

在 教程一 中,我们将要爬取的网站是豆瓣片子:http://movie.douban.com/

  1. def list_page(self, response): 
  2.  
  3.     for each in response.doc('HTML>BODY>DIV#wrapper>DIV#content>DIV.grid-16-8.clearfix>DIV.article>DIV>TABLE TR.item>TD>DIV.pl2>A').items(): 
  4.  
  5.         self.crawl(each.attr.href, callback=self.detail_page) 
  6.  
  7.     # 翻页 
  8.  
  9.     for each in response.doc('HTML>BODY>DIV#wrapper>DIV#content>DIV.grid-16-8.clearfix>DIV.article>DIV.paginator>A').items(): 
  10.  
  11.         self.crawl(each.attr.href, callback=self.list_page)  
  • 翻页是一个到本身的 callback 回调

你可以在: http://demo.pyspider.org/debug/tutorial_douban_movie 获得完全的代码,和进行测试。

开端之前

因为教程是基于 pyspider 的,你可以安装一个 pyspider(Quickstart,也可以直接应用 pyspider 的 demo 情况: http://demo.pyspider.org/。

你还应当至少对万维网是什么竽暌剐一个简单的熟悉:

  • 万维网是一个由很多互相链接的超文本页面(以下简称网页)构成的体系。
  • 网页应用网址(URL)定位,并链接彼此
  • 网页应用 HTTP 协定传输
  • 网页应用 HTML 描述外不雅和语义

所以,爬网页实际上就是:

  • 找到包含我们须要的信息的网址(URL)列表
  • 经由过程 HTTP 协定把页面下载回来
  • 大年夜页面的 HTML 中解析出须要的信息
  • 找到更多这个的 URL,回到 2 持续

拔取一个开端网址

既然我们要爬所有的片子,起首我们须要抓一个片子列表,一个好的列表应当:

  • 包含足够多的片子的 URL
  • 经由过程翻页,可以遍历到所有的片子
  • 一个按照更新时光排序的列表,可以更快抓到最新更新的片子

我们在 http://movie.douban.com/ 扫了一遍,发明并没有一个列表能包含所有片子,只能退而求其次,经由过程抓取分类下的所有的标签列表页,来遍历所有的片子: http://movie.douban.com/tag/

创建一个项目

在 pyspider 的 dashboard 的右下角,点击 “Create” 按钮

开端抓取

  • 应用 run 单步调试你的代码,对于用一个 callback 最好应用多个页面类型进行测试。然后保存。
  • 回到 Dashboard,找到你的项目
  • 将 status 修改为 DEBUG 或 RUNNING
  • 按 run 按钮 

调换>

  • @every(minutes=24 * 60) 
  •  
  • def on_start(self): 
  •  
  •     self.crawl('http://movie.douban.com/tag/', callback=self.index_page)  
    • self.crawl 告诉 pyspider 抓取指定页面,然后应用 callback 函数对结不雅进行解析。
    • @every 润饰器,表示>

      Tag 列表页

      在 tag 列表页 中,我们须要提掏出所有的 片子列表页 的 URL。你可能已经发清楚明了,sample handler 已经提取了异常多大年夜的 URL,所有,一种可行的提取列表页 URL 的办法就是用正则大年夜中过滤出来:

      1. import re 
      2.  
      3. ... 
      4.  
      5.   
      6.  
      7.     @config(age=10 * 24 * 60 * 60) 

          推荐阅读

          Windows 10 S怎么样?Windows 10 S六大新特性介绍

        可能很多同伙会问Windows10 S体系怎么样?Windows10 S体系是5月2日微软推出的Windows10简化版体系,重要针对教导市场、学生用户,拥有开机快、价格便宜、兼容性更好,硬件请求更低等特点。>>>详细阅读


        本文标题:pyspider爬虫教程:HTML和CSS选择

        地址:http://www.17bianji.com/lsqh/35127.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)