Hoho35 / study_spider

学习基本的网络爬虫,在这里会列举一些简单爬虫的小例子。既有简单的使用requests、selenium实现的爬虫,也有使用scrapy框架实现的爬虫项目,当然这里还有涉及到xpath、bs4、pymongo、pymysql等库的简单使用!!!!

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

学习基本的网络爬虫

爬虫列表
妹子图爬取 有道翻译 当当书城畅销书排行 豆瓣读书网站评论及原文摘要
使用Scrapy的图书爬虫 百度网盘资料搜索器 电子图书搜索神器 selenium实现163邮箱自动发送
  1. 妹子图爬取 已更新使用面向对象方法的抓取方式地址

    • 在面向对象方法中加入多线程,使用4个线程,但是可能会被封IP,故再次优化版本,使用2个线程,配合IP代理池使用,该版本地址

    • 在get_page_link方法中有个限制,取消后可以直接爬取全站分页,否则只能爬取全站分页的52页。

    • Windows系统电脑可以直接运行这个文件

    • 加入每日一爬功能(只爬取每日更新图片)

  2. 有道翻译

    • 抓取移动端的有道词典,实时进行翻译

    • 和第一个妹子图不同的请求方式,你可以看到使用post请求返回的结果

    • 开始尝试使用面向对象的思路写爬虫程序

  3. 当当书城畅销书排行

    • 抓取当当网站畅销书排行(ps:还是要多读书额)

    • 另外附赠4月25日抓取的数据

    • 使用两种方式保存抓取到的数据

      • 使用txt格式时,什么都不需要做,只要运行就好

      • 使用MongoDB时,需要额外安装Mongo数据库和pymongo

    • 抓取时,使用的xpath如下:

      # 页码 //*[@class="data"]/span[2]/text()
      # 对应排行 //*[@class="bang_list clearfix bang_list_mode"]/li/div[1]/text()
      # 书名 //*[@class="name"]/a/@title
      # 推荐度 //*[@class="tuijian"]/text()
      # 作者 //*[@class="publisher_info"]/a[1]/@title
      # 出版社 //*[@class="publisher_info"]/a[1]/text()  ### 注意:偶数个才是出版社名
      # 价格 //*[@class="price"]/p[1]/span[1]/text()
      
  4. 豆瓣读书网站评论及原文摘要

    • 抓取豆瓣网站长评论、原文摘录以及读书笔记

    • 此次抓取使用多线程提高了抓取速度

    • 在本小项目中,由于时间较为紧迫,导致部分代码中含有较多看似相同的代码,在长评论、原文摘录以及读书笔记中最明显,原因如下:

      • 获取的xpath部分是相同的

      • 代码形体看似是相同的

    • 已想到的解决方法

      • 建造一个新的方法,该方法直接通过传入参数值的方式来抓取,并返回结果

      • 然后删减掉长评论、原文摘录以及读书笔记中部分代码,使用刚建造的方法来返回值,从而保存数据

    • 使用方法(以人间失格为例)

      • 首先进入豆瓣读书网,这是它的主页面 alt

      • 通过搜索框输入想要的书名,这里输入人间失格,打开后是这个界面 alt

      • 将上述界面中③的内容写入到右边括号()内 douban = DouBanBook()

      • 注意:本项目支持多本书的爬取,你可以在上述括号内填入更多的书的ID,使用英文,隔开即可

      • 数据有一个简单清洗,抓取后存放在MongoDB中

    • 抓取时,使用的xpath和思路如下:

      # 书名  //*[@property="v:itemreviewed"]/text()
      # 原作者 //*[@id="info"]//a[1]/text()
      # 评分 //*[@property="v:average"]/text()
      # 内容简介 //*[@class="related_info"]//*[@class="intro"][1]//p[1]/text()
      # https://book.douban.com/subject/6973970
      
      # 原文摘录 url+/blockquotes?sort=score&start=0 进入原文摘录  
      # 文章提取地址  //*[@class="blockquote-list score bottom-line"]//li/figure/text()[1]
      # https://book.douban.com/subject/6973970/blockquotes?sort=score&start=0
      # https://book.douban.com/subject/6973970/blockquotes?sort=score&start=20
      # //*[@class="paginator"]/a[10]/text()  获取最大页码值  上述可查  每次跳转为20
      
      # 长评 url+/reviews?start=0 进入长评
      # 评论提取地址  //*[@class="review-list  "]//*[@class="short-content"]/text()
      # https://book.douban.com/subject/6973970/reviews?start=20
      # https://book.douban.com/subject/6973970/reviews?start=20
      # //*[@class="paginator"]/a[10]/text()  获取最大页码值  上述可查  每次跳转为20
      
      # 读书笔记 url+/annotation?sort=rank&start=0
      # 提取地址 //*[@class="comments by_rank"]//*[@class="short"]/span/text()
      # https://book.douban.com/subject/6973970/annotation?sort=rank&start=0
      # https://book.douban.com/subject/6973970/annotation?sort=rank&start=20
      # //*[@class="paginator"]/a[10]/text()  获取最大页码值  上述可查  每次跳转为20
      
  5. 通用图书爬虫

    • 使用Scrapy框架创建的一个通用网络爬虫,针对不同网站编写不同的网络爬虫,对网页的抓取,实现网页文本的本地化存储。
  6. 百度网盘资料搜索器

    • 使用关键字来搜索百度网站**享的资源
      • 效果图
        alt
  7. 电子图书资料搜索器

    • 简单使用了一下@property装饰器,好用!
    • 未加入网站过滤,一般查看搜索后以https://pan开头的,效果更佳!
    • 这个也是post请求,而且返回的是json数据,具体可以看代码部分
    • 效果图
      alt
  8. selenium实现163邮箱自动发送

    • 使用selenium实现自动化操作
    • 效果图 alt

待办事件

  • 加入更多的爬虫项目
  • 适当加入一些爬虫项目中的经验

About

学习基本的网络爬虫,在这里会列举一些简单爬虫的小例子。既有简单的使用requests、selenium实现的爬虫,也有使用scrapy框架实现的爬虫项目,当然这里还有涉及到xpath、bs4、pymongo、pymysql等库的简单使用!!!!


Languages

Language:Python 100.0%