Scrapy学习笔记 爬取w3school
本文学习自:https://www.urlteam.org/2016/06/scrapy-%E5%85%A5%E9%97%A8%E9%A1%B9%E7%9B%AE-%E7%88%AC%E8%99%AB%E6%8A%93%E5%8F%96w3c%E7%BD%91%E7%AB%99/
由于原作者用的是python2. 所以本人在用python3.6尝试时遇到不少坑。
1.创建项目
$ scrapy startproject w3school
创建完之后会有这几个文件:
2.定义Item容器
from scrapy.item import Item,Fieldclass W3schoolItem(Item):title = Field()link = Field()desc = Field()
爬到的信息会按照这几项存起来
3.pipeline.py
pipeline是对爬到的数据进行处理(查重、丢弃,储存)的地方。
# -*- coding:utf-8 -*-# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: http://doc.scrapy.org/en/latest/topics/item-pipeline.htmlimport json
import codecs
import stringclass W3SchoolPipeline(object):def __init__(self):self.file = codecs.open('w3school_data_utf8.json','wb', encoding='utf-8')#‘wb’表示写入bytes,参数需要加上encoding='utf-8',因为写入需要二进制码,encoding可以生成二进制码def process_item(self, item, spider):
#将数据写入json里面self.file.write(line)return item
为了启动pipeline,需在setting里面加入:
4.spider爬虫代码
爬虫代码相对容易理解,就是用xpath找出你要爬的数据的位置,然后抽取出来,放到item[]容器里面
# !/usr/bin/python
# -*- coding:utf-8 -*-from scrapy.spiders import Spider #python2是scrapy.spider
from scrapy.selector import Selector
from w3school.items import W3schoolItemclass W3schoolSpider(Spider):
#这个名字就是待会运行爬虫的名字name = "w3school"allowed_domains = ["w3school.com.cn"]start_urls = ["http://www.w3school.com.cn/xml/xml_syntax.asp"]def parse(self, response):sel = Selector(response)sites = sel.xpath('//div[@id="navsecond"]/div[@id="course"]/ul[1]/li')items = []for site in sites:item = W3schoolItem()title = site.xpath('a/text()').extract()link = site.xpath('a/@href').extract()desc = site.xpath('a/@title').extract()item['title'] = title #直接放到容器里就好了,不用像python2一样编码item['link'] = linkitem['desc'] = descitems.append(item)return items
5.运行爬虫 在你项目的目录下:
$ scrapy crawl w3school
用记事本打开你在项目文件夹里所建立的
w3school_data_utf8.json
就可以看到
搞腚!d=====( ̄▽ ̄*)b
ITEM_PIPELINES = {'w3school.pipelines.W3SchoolPipeline': 300,
}
#加上参数ensure_ascii=False,生成的json里面就可以显示中文啦!
line = json.dumps(dict(item),ensure_ascii=False)+ '\n' #print (line)
Scrapy学习笔记 爬取w3school相关推荐
- 西山小菜鸟之Scrapy学习笔记---爬取企查查网公司的裁判文书信息
前言 本文接着上文,爬取企查查的公司裁判文书信息.企查查 本文中若存在不详细的地方欢迎各位大神网友提问,若有错误的地方,希望大家指正.谢谢!! ? ? 粗略分析 点击进入要查询的公司可以进入该公司的 ...
- 西山小菜鸟之Scrapy学习笔记---爬取企查查网站公司基本信息
前言 本文主要采取cookie登录的方式爬取企查查网站的公司的基本信息,后期会继续发布关于爬取企查查网站上的公司的裁判文书信息.链接为:企查查 本文中若存在不详细的地方欢迎各位大神网友提问,若有错误 ...
- Python爬虫学习笔记 -- 爬取糗事百科
Python爬虫学习笔记 -- 爬取糗事百科 代码存放地址: https://github.com/xyls2011/python/tree/master/qiushibaike 爬取网址:https ...
- Python scrapy学习之爬取2k唯美壁纸详细过程笔记及讲解
Scrapy 学习爬取图片 Scrapy 爬取图片时候绕了很多圈子,才明白了走了很大的弯路,幸亏绕出来了(大话可能说得有点早~),赶紧记录一下心得体会: 创建爬虫时的参数选择: 一是普通创建爬虫法: ...
- Scrapy框架学习笔记 - 爬取腾讯招聘网数据
文章目录 一.Scrapy框架概述 (一)网络爬虫 (二)Scrapy框架 (三)安装Scrapy框架 (四)Scrapy核心组件 (五)Scrapy工作流程 二. Scrapy案例演示 (一)爬取目 ...
- Python学习笔记-爬取B站电视剧《风犬少年的天空》弹幕并分析
爬取B站电视剧<风犬少年的天空>弹幕并分析 写在前面 开始! 简单分析一下弹幕数据 蠢并痛苦着的学习过程... 干(烂)货环节-------弹幕的获取与整理 关于cid的获取 关于弹幕上限 ...
- scrapy学习之爬取顶点小说数据(转)
1.爬取网站 https://www.x23us.com 2.转出处 https://cuiqingcai.com/3472.html 3.遇到的问题 3.1 mysql的模块导入问题 修改为pymy ...
- 爬虫学习笔记--爬取静态网页
声明:我这里是学习 唐松老师的<Python网络爬虫从入门到实践>的学习笔记 只是记录我自己学习的过程 详细内容请购买老师正版图书 import requestsr = requests ...
- python海贼王logo_Python 学习笔记---爬取海贼王动漫
最近无聊整理的爬虫代码,可以自动爬取腾讯动漫的任意漫画,思路如下: 1. 先获取想下载的动漫url, 这里用了 getUrls ,直接获取动漫的最后一章 2. 然后进入到该动漫去获取要下载的图片url ...
最新文章
- 绩效管理误区和乱象,你的企业存在吗?
- Linux目录是否是否为空,在Linux上使用C检查目录是否为空
- 前端控制器html,DispatcherServlet(前端控制器)访问顺序和url匹配规则
- python获取excel某一列所有值-Python读取Excel一列并计算所有对象出现次数的方法...
- slf4j + logback 输出日志:mybatis sql语句
- 如何在Chrome工具栏中固定和取消固定扩展程序
- 为IoT和大数据项目分配IT资源
- FastHook——实现.dynsym段和.symtab段符号查询
- 航天信息上传参数设置服务器设置,金税盘上传参数怎么设置?
- stm32F103+EncEthernet+ENC28J60驱动+ping
- RN综合演练,仿美团电商(谢谢你的STAR)
- 数据分析之房价预测(机器学习,sklearn)
- Excel中 VLOOKUP 函数的使用
- 约瑟夫问题和又遇约瑟夫问题
- 小白读odoo参考手册--字段
- 我走了,青春留给北京
- linux 合并视频文件,视频剪切合并器VideoCutter 5.0 发布(附Ubuntu 17.10中安装方法)...
- coreldraw x7怎样设置禁网_怎样设置文件禁止访问网络
- ckeditor4 php,dedecms升级最新版CKEditor4.15教程
- 三轴桁架机械手控制系统 用于数控车床自动上下料 信捷触摸屏程序
热门文章
- angularjs表单验证_AngularJS表单验证
- Centos 7.6 下使用美格SLM750(4G模块)拨号上网
- 博瑞云音箱云喇叭开发文档API接口文档开发指南(21-12-20)
- 开发购物商城app系统软件需要多少钱
- 我用加强版RFM模型,轻松扒出B站优质up主!(含数据+实战代码)
- VirtualAPK 报错: Failed to notify project evaluation listener. > SDK location not found. Define locati
- CENTOS7 安装eclipse应用
- 智能车K60学习笔记
- Yoga C930 NM-B741 EYG70 Ariel-SVT REV 1.0联想笔记本图纸
- 浙江大学mooc的数据结构_课后习题01-复杂度2 Maximum Subsequence Sum