新手向爬虫(三)别人的爬虫在干啥

新手向爬虫(三)别人的爬虫在干啥_第1张图片

古人云博采众长,我们来看看其他人的爬虫是怎么 学和用的:


爬虫文章 in 程序员专题:

  1. like:128 - Python 爬取落网音乐
  • like:127 - 【图文详解】python爬虫实战——5分钟做个图片自动下载器
  • like:97 - 用Python写一个简单的微博爬虫
  • like:87 - 爬虫抓取拉勾网职位需求关键词,并生成统计图
  • like:87 - Python爬虫实战(2):爬取京东商品列表
  • like:85 - python爬虫入门(1):爬万本书籍
  • like:73 - Python爬虫(六)--Scrapy框架学习
  • like:72 - Python爬虫(一)--豆瓣电影抓站小结(成功抓取Top100电影)
  • like:63 - Python爬虫框架Scrapy快速入门
  • like:62 - Scrapy爬取图片
  • like:60 - 使用Node.js制作爬虫教程(续:爬图)
  • like:59 - 使用Scrapy爬取大规模数据
  • like:55 - 爬取全站文章并生成 API(一)
  • like:49 - 教女朋友爬虫
  • like:48 - 60小时Python爬虫学习:从100行数据到10W+数据
  • like:48 - Python爬虫(七)--Scrapy模拟登录
  • like:47 - 教你从零开始学会写爬虫(Python)
  • like:46 - 基于MVP模式开发的带缓存网络爬虫,采用最流行框架搭建,干货多多
  • like:46 - 【图文详解】scrapy安装与真的快速上手——爬取豆瓣9分榜单
  • like:45 - Python爬虫初学(三)—— 模拟登录知乎
  • like:45 - Python爬虫(二)--Coursera抓站小结
  • like:44 - Python爬虫学习-大数据统计分析(基础)
  • like:42 - 产品经理学Python&爬虫(二):Python基础及爬虫入门
  • like:42 - 记一次斗鱼TV弹幕爬虫经历(Ruby版本)
  • like:40 - 爬取全站文章并生成 API(二)
  • like:40 - 33款开源爬虫软件工具 收藏!(你也试试)
  • like:38 - python 爬取一些数据,存入数据库 并生成简单图表
  • like:37 - Python爬虫之抓取APP下载链接
  • like:37 - 网络蜘蛛的基本素养(python爬虫入门篇:介绍和原生库)
  • like:37 - 斗鱼TV弹幕爬虫(Python版本)
  • like:36 - 打造一条爬虫
  • like:35 - Kali Linux Web 渗透测试秘籍 第三章 爬虫和蜘蛛
  • like:35 - 【图文详解】scrapy爬虫与Ajax动态页面——爬取拉勾网职位信息(1)
  • like:34 - 零基础制作一个Python 爬虫
  • like:33 - Scrapy实战-爬取豆瓣漫画
  • like:30 - Python即时网络爬虫项目: 内容提取器的定义
  • like:30 - 使用Node.js制作爬虫教程
  • like:30 - 【同行说技术】爬虫学习汇总:Python程序员从小白到大神必读资料汇总(二)
  • like:29 - Python爬虫防封杀方法集合
  • like:29 - 5.Python3爬虫入门实践——爬取名著
  • like:29 - java爬虫之下载txt小说
  • like:29 - Python 笔记七:Requests爬虫技巧
  • like:29 - python爬虫:爬取慕课网视频
  • like:29 - 【同行说技术】Python开发、调试、爬虫类工具大全
  • like:27 - 最简便的爬虫效率提升方法
  • like:26 - 一步步教你利用Github开源项目实现网络爬虫:以抓取证券日报新闻为例
  • like:26 - Python自定义豆瓣电影种类,排行,点评的爬取与存储(高阶上)
  • like:26 - Python爬取图虫网摄影作品
  • like:26 - 如何做好一款爬虫产品(kimono,importio,八爪鱼试用分析)
  • like:26 - 一天就能写 Python 爬虫
  • like:26 - Python爬虫(四)--多线程
  • like:25 - 爬虫框架webmagic与spring boot的结合使用
  • like:23 - java简单的爬虫(今日头条)
  • like:23 - 用Python爬取实习信息(Scrapy初体验)
  • like:22 - 爬取百度图片各种狗狗的图片,使用caffe训练模型分类
  • like:22 - 爬取全站文章并生成 API(五)
  • like:22 - 爬取全站文章并生成 API(四)
  • like:22 - 爬取全站文章并生成 API(三)
  • like:22 - Python爬虫实战(4):豆瓣小组话题数据采集—动态网页
  • like:22 - Python爬虫(五)--多线程续(Queue)
  • like:21 - 一个实现批量抓取淘女郎写真图片的爬虫
  • like:21 - Python爬虫实战(3):安居客房产经纪人信息采集
  • like:21 - Scrapy爬取用户url分析
  • like:21 - 【图文详解】scrapy爬虫与Ajax动态页面——爬取拉勾网职位信息(2)
  • like:21 - 来,让我们写一个网络爬虫,下载页面上所有的照片吧!
  • like:19 - node入门场景之——爬虫
  • like:19 - python爬虫入门(2):让你的github项目火起来
  • like:18 - 网络爬虫:使用Scrapy框架编写一个抓取书籍信息的爬虫服务
  • like:18 - 专栏:006:实战爬取博客
  • like:18 - 【开源】爬取QQ空间说说及简易数据分析
  • like:17 - Python实现简单爬虫(爬取下载链接)
  • like:17 - 教你一步一步用 Node.js 制作慕课网视频爬虫
  • like:16 - python知乎爬虫(最新)
  • like:16 - Python即时网络爬虫项目启动说明
  • like:16 - 用Python爬取妹子图——基于BS4+多线程的处理
  • like:16 - 教女朋友爬虫(续)
  • like:15 - 爬虫学习之一个简单的网络爬虫
  • like:15 - #Python爬虫手册(一)
  • like:15 - 使用Python模拟腾讯第三方认证-篇4 [自动爬取分析及下载]
  • like:15 - python 知乎爬虫
  • like:14 - 通过网络图片小爬虫对比Python中单线程与多线(进)程的效率
  • like:14 - 利用Beautifusoup爬取网页指定内容
  • like:14 - 爬取网页 干货集中营 gank.io
  • like:13 - 8.Python3爬虫实例——使用BeautifulSoup4重构爬取名著
  • like:13 - Python爬虫:常用浏览器的useragent
  • like:13 - Ruby+Tesseract爬取学校教务系统
  • like:12 - 没壁纸用了?用Jsoup写一个图片爬虫吧!
  • like:12 - 写一只"独立"的python爬虫-浅谈用爬虫自行抓取代理ip网站信息
  • like:12 - 一个人人网python爬虫
  • like:12 - 利用Node写一只小爬虫爬一爬
  • like:12 - 爬虫抓取ruby-china职位分布图,含代码
  • like:11 - Python爬虫初学(一)—— 爬取段子
  • like:11 - Python爬虫-搜索并下载图片
  • like:10 - 爬虫
  • like:10 - 4.Python3爬虫入门
  • like:10 - 爬虫学习之基于Scrapy的网络爬虫
  • like:10 - python3.5爬虫辅助第三方库
  • like:10 - python爬虫入门之模拟登陆新浪微博
  • like:9 - 爬虫之刃----赶集网招聘类爬取案例详解(系列四)
  • like:9 - 9.Python3爬虫实例——使用Scrapy重构代码爬取名著
  • like:9 - 从零开始开发一个App(1)- Scrapy爬虫
  • like:9 - 简单爬取豆瓣妹子(Objective-C)
  • like:9 - 人脑爬虫
  • like:9 - python爬虫的最佳实践(八)--初探Scrapy
  • like:9 - 爬取美少女图片
  • like:9 - Tornado 4.3 文档翻译: 用户指南-并发网络爬虫
  • like:9 - python爬虫入门之qq登陆初探
  • like:8 - 为编写网络爬虫程序安装Python3.5
  • like:8 - Python爬虫初学(二)—— 爬百度贴吧小说和图片
  • like:8 - 10分钟利用JSoup和CSV爬取58同城二手房信息
  • like:8 - 老堂主爬虫交流--百度贴吧模拟回帖
  • like:8 - python爬虫-爬取盗墓笔记
  • like:8 - Python爬虫-re(正则表达式)模块常用方法
  • like:8 - 百度指数爬取工具
  • like:7 - 原创爬虫开源项目——更新维护
  • like:7 - Python异步爬虫试验[Celery,gevent,requests]
  • like:7 - 网络爬虫: 从allitebooks.com抓取书籍信息并从amazon.com抓取价格(3): 根据书籍ISBN码抓取amazon.com价格
  • like:7 - 网络爬虫: 从allitebooks.com抓取书籍信息并从amazon.com抓取价格(1): 基础知识Beautiful Soup
  • like:7 - Python即时网络爬虫项目: 内容提取器的定义(Python2.7版本)
  • like:7 - Python爬取三国演义
  • like:7 - Python自定义豆瓣电影种类,排行,点评的爬取与存储(进阶下)
  • like:7 - 小作品: Python QQ 群爬虫 (Update 2016-08-19)
  • like:7 - 爬虫的理论知识储备
  • like:7 - 豆瓣爬虫
  • like:7 - py爬虫
  • like:6 - 新手向爬虫(一)利用工具轻松爬取并分析
  • like:6 - 第二个爬虫
  • like:6 - Python爬虫爬取美剧网站
  • like:6 - Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
  • like:6 - python__运用爬虫猜密码
  • like:5 - Pyspider框架 —— Python爬虫实战之爬取 V2EX 网站帖子
  • like:5 - python3+sqlite3+多线程爬取某网站文章
  • like:5 - 基于python的爬虫——espider
  • like:5 - 基于scrapy框架的关于58同城招聘网站信息的爬取(一)
  • like:5 - 连载作者福音: 一键生成连载目录和连载作品排行统计(Python爬虫应用)
  • like:5 - nodejs网络爬虫技术详解
  • like:5 - python__超级超级超级简单的一个爬虫小程序
  • like:5 - 【HtmlUnit】网页爬虫进阶篇
  • like:5 - python小爬虫抓取搞笑图片V2.0
  • like:5 - python小爬虫抓取搞笑图片
  • like:4 - python异步爬虫
  • like:4 - Python自定义豆瓣电影种类,排行,点评的爬取与存储(进阶上)
  • like:4 - 爬虫学习之基于Scrapy的自动登录
  • like:4 - 浅析通用爬虫软件—— 集搜客与八爪鱼采集器
  • like:4 - Laravel 下使用 Guzzle 编写多线程爬虫实战
  • like:4 - Python小记:selenium+PhantomJS爬虫解决页面js添加cookie
  • like:3 - 爬虫之scrapy-splash——scrapy+js渲染容器
  • like:3 - python爬虫爬房多多链家房源信息
  • like:3 - Python爬取FLASH播放器中的资料
  • like:3 - Python即时网络爬虫:API说明
  • like:3 - xiaolinBot(Twitter笑话集锦爬虫Bot) Step3-适配器
  • like:3 - xiaolinBot(Twitter笑话集锦爬虫Bot) Step1-最简爬虫
  • like:3 - 一个爬所有历史文章的爬虫
  • like:2 - 网络爬虫: 从allitebooks.com抓取书籍信息并从amazon.com抓取价格(2): 抓取allitebooks.com书籍信息及ISBN码
  • like:2 - Python: 爬取廖雪峰大神的python教程
  • like:2 - 用爬虫抢自如房子
  • like:2 - xiaolinBot(Twitter笑话集锦爬虫Bot) Step0-概述
  • like:1 - 写爬小说的爬虫的一些心得
  • like:1 - Python自定义豆瓣电影种类,排行,点评的爬取与存储(初级)
  • like:0 - 新手向爬虫(二)——站点分析
  • like:0 - 反爬虫策略
  • like:0 - xiaolinBot(Twitter笑话集锦爬虫Bot) Step2-代码优化

使用Scrapy爬取上述列表

安装Scrapy

  • 下载文件:lxml;twisted;并在该页面上搜索scrapy并下载whl文件,最后使用pip install x.whlx为 whl文件名,依次安装三个文件。
  • 我下载的都是cp35-cp35m-win_amd64.whl,win7安装成功。

简单快速的Scrapy

  • 编辑名为num1.py的文件添加以下内容,使用命令行scrapy runspider num1.py -o 1.json在文件当前所在目录下运行文件,表示使用Scrapy执行该爬虫并将输出数据保存为json文件。
  • 整个爬取过程花费了212.98秒,平均每个页面花费0.053秒
# -*- coding: utf-8 -*-
# 文本编辑器编码要设置对,最好为UTF-8无BOM编码
import scrapy

class Num1Spider(scrapy.Spider):
    name = "num1" # 爬虫命名,在项目中有用
    allowed_domains = ["jianshu.com"] # 允许爬取的域名
    domain = 'http://jianshu.com' # 自己设置的基础域名变量

    headers = {
        "User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36",
    } # 请求头
    base_url = 'http://www.jianshu.com/collections/16/notes?order_by=added_at&page=%d'
    # 关于此处url,参看新手向爬虫(一)
    num = 0 # 页数
    
    def start_requests(self): # 默认的开始函数,用于提供要爬取的链接
        # url = self.base_url % self.num
        while self.num < 4000: # 程序员专题总页数小于4000,共花费212.975027秒
            self.num += 1
            yield scrapy.Request(self.base_url % self.num,
                             headers = self.headers,
                             callback = self.parse)
                             
    def parse(self, response):  # 默认的回调函数,用于链接下载完毕后调用来处理数据
    
        for index,i in enumerate(response.css(".title a::text").extract()):
            if "爬虫" in i or "爬取" in i:
                like = response.css("a + span::text").extract()[index].replace(' · 喜欢 ', '')
                url = self.domain + response.css('.title a::attr(href)').extract()[index]
                yield {"title" : i, "like": like, "url": url}
                                

######################## Debug ###############################        
#        from scrapy.shell import inspect_response
#        inspect_response(response, self)
# 将以上两句插入回调函数中任意位置,即可在运行过程中中断打开交互命令行,用于调试查看响应内容
######################## Run   ###############################       
# scrapy runspider num1.py -o 1.json

文本后处理

  • 用于从上一步生成的json文件中提取数据并排序生成简单的markdown。
# -*- coding: utf-8 -*-
import json

with open('1.json','r') as f:
    data = json.load(f)
    data = sorted(data, key =lambda x: int(x['like']), reverse=True)
    # 以喜欢数对文章进行排序
    with open('1.md', 'w') as m:
        m.write('### 爬虫文章 in 程序员专题:\n')
        for i in data:
            m.write('- *like*:**{like}** - [{title}]({url})\n'.format(**i))
            # **i 表示解包字典

Scrapy官方文档

你可能感兴趣的:(新手向爬虫(三)别人的爬虫在干啥)