最近一直在学习scrapy,但是网上关于scrapy的教程实在是太少,能找到的教程大多都是基于py2.7/scrapy0.2以下,甚至很多教程都是互相抄袭,连代码都抄漏了好多,更别提各种缩进错误、变量名错误、导入错误了等等。趁着最近正在撸scrapy的官方教程,想着做几个小爬虫促进一下学习、加深印象,就写下了这篇不算教程的“教程”。我也深知,知乎上大牛太多了,所以恳请各位能多多指教!

在你看这个教程的时候,默认你已经基本掌握了python3的语法,不求会写,但是至少你能看懂。为了蹭个热度,特意选了python圈里非常著名的廖雪峰老师的博客作为爬虫对象。廖老师,你博客每天的访问量那么高,也不差让我们这些萌新练练爬虫了吧。

运行环境:

window10 x64系统

python3.6

pycharm

anaconda

scrapy

安装好以上环境、包之后,打开cmd,输入scrapy startproject liaoxuefeng,出现以下提示后,就说明你已经成功创建一个scrapy的新项目:

在该项目的根目录下,文件夹形式如下:

liaoxuefeng/

scrapy.cfg

liaoxuefeng/

__init__.py

items.py

pipelines.py

settings.py

spiders/

__init__.py

...

开始编写爬虫的第一个代码!打开liaoxuefeng/liaoxuefeng/spiders,创建一个新文件liaoxuefeng.py,写入如下代码:

import scrapy

class LiaoxuefengSpider(scrapy.Spider):

# 这里是将爬虫定义为scrapy.Spider这个类下的一个实例。

# Spider这个类定义了爬虫的很多基本功能,我们直接实例化就好,

# 省却了很多重写方法的麻烦。

name = 'lxf'

#这是爬虫的名字,这个非常重要。

start_urls = ['http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000']

#这是爬虫开始干活的地址,必须是一个可迭代对象。

def parse(self, response):

#爬虫收到上面的地址后,就会发送requests请求,在收到服务器返回的内容后,就将内容传递给parse函数。在这里我们重写函数,达到我们想要的功能。

titles = response.xpath("//ul[@class='uk-nav uk-nav-side']//a/text()").extract()

#这是廖雪峰老师python教程的标题列表。我们利用xpath解析器对收到的response进行分析,从而提取出我们需要的数据。//XXX表示任何任何目录下的XXX区块,/XXX表示子目录下的XXX区块,XXX[@class=abc]表示带有class=abc属性值的XXX区块,/text()表示获取该区块的文本。最后加上.extract()表示将内容提取出来。

for title in titles:

print (title)

#这个没什么说的了,直接遍历,然后打印标题。

然后进入cmd,在项目的根目录下运行scrapy crawl lxf(这个lxf就是刚才liaoxuefeng.py文件中的name字段,千万不要弄错了),运行成功,将打印当页所有的目录名称:

最简单的爬虫就写到这里。也许你有地方没看懂,也许我讲的不够详细,欢迎留言提问、建议,更欢迎高手指教!

我的全部文章:

欢迎加QQ群:613081176,纯技术交流,杜绝广告、刷屏、机器人

点个赞再收藏呀,亲!现在点赞1000+,收藏突破2000+,真有点无语哎!

欢迎关注微信订阅号:python程序员之路

介绍python最新的功能、模块,详解实用代码。主要针对python的初级和中级爱好者。更新频率不会太高,绝不推送广告。有我在,成长的路上不会孤单!

想转载的话请联系作者,谢谢!

廖雪峰python3爬虫教程_Scrapy爬虫框架入门教程(1)——爬取廖雪峰老师的博客...相关推荐

  1. python爬取小说写入txt_燎原博客—python爬取网络小说存储为TXT的网页爬虫源代码实例...

    python是一门优秀的计算机编程语言,两年前曾因为动过自动化交易的念头而关注过它.前几天在微信上点了个python教学的广告,听了两堂课,所以现在又热心了起来,照葫芦画瓢写了一段简单的网络爬虫代码, ...

  2. 初探Scrapy爬虫框架之百度网页爬取

    初探Scrapy爬虫框架之百度网页爬取 scrapy框架及百度网页爬取与保存 一.scrapy框架简介 二.自己初使用的心得体会 1.爬虫之前明确目标 2.scrapy框架的简单使用流程 3.scra ...

  3. python微信爬取教程_python爬虫_微信公众号推送信息爬取的实例

    问题描述 利用搜狗的微信搜索抓取指定公众号的最新一条推送,并保存相应的网页至本地. 注意点 搜狗微信获取的地址为临时链接,具有时效性. 公众号为动态网页(JavaScript渲染),使用request ...

  4. python 写csv scrapy_scrapy爬虫框架实例一,爬取自己博客

    本篇就是利用scrapy框架来抓取本人的博客,博客地址:http://www.cnblogs.com/shaosks scrapy框架是个比较简单易用基于python的爬虫框架,相关文档:http:/ ...

  5. Python爬虫之scrapy框架360全网图片爬取

    Python爬虫之scrapy框架360全网图片爬取 在这里先祝贺大家程序员节快乐,在此我也有一个好消息送给大家,本人已开通了微信公众号,我会把资源放在公众号上,还请大家小手动一动,关注过微信公众号, ...

  6. python3爬虫系列24之重庆微博地铁客运量爬取且可视化输出

    python3爬虫系列24之重庆微博地铁客运量爬取和可视化 1.前言 在python3爬虫系列23之selenium+腾讯OCR识别验证码登录微博且抓取数据里面,我们既是又搞selenium自动化,又 ...

  7. 爬虫项目实战一:基于Scrapy+MongDB爬取并存储糗事百科用户信息

    爬虫项目实战一:基于Scrapy+MongDB爬取并存储糗事百科用户信息 一.前言 二.项目目标 三.项目的环境配置 四.项目实现 1. 创建QSBK项目 2. 实现Spider 1. 实现一页网页上 ...

  8. 【爬虫实战】Python 自制天气预报程序!爬取全国天气网

    学会了爬虫,让我们自制一个天气预报的爬虫吧! 需求分析 1.用 requests 爬取 全国天气网 的网页源代码: 2.用 pyquery 解析网页源代码,取得天气情况信息的节点: 3.用 xlwt ...

  9. python制作pdf教程_学以致用:Python爬取廖大Python教程制作pdf!

    学以致用:Python爬取廖大Python教程制作pdf! python-tutorial-pdf 当我学了廖大的Python教程后,感觉总得做点什么,正好自己想随时查阅,于是就开始有了制作PDF这个 ...

最新文章

  1. Javascript 判断网页横竖屏
  2. 每日一皮:临近截止日期, 产品经理就这样看着我...
  3. mysql dba系统学习(1)mysql各版本编译安装
  4. 剑指Offer #11 二进制中1的个数(想不到的骚操作)
  5. python多线程编程_Python 多线程编程
  6. 映射内网ftp服务器到公网报错问题解决
  7. OPPO Reno6系列和Reno5系列有啥区别?价格差不多?
  8. webpack 运行提示“The ‘mode‘ option has not been set”的原因和解决方法
  9. LINUX查询版本情况
  10. 绘图杂记【1】Python、R等绘图
  11. MyQQ框架火山SDK
  12. Halcon视觉实战例程之汉字识别
  13. 桌面的「微信」坏了,「如何恢复」
  14. 怎么在计算机中搜索可移动硬盘,电脑如何识别移动硬盘
  15. Vue3官网-高级指南(十五)Vue 与 Web Components
  16. 明明白白lua的协程(coroutine)
  17. atoi(s)函数用法 1
  18. html中文本旋转90度,css如何使文字方向转90度
  19. PHP单文件读取excel操作数据库
  20. javaWeb重定向

热门文章

  1. python鼠标键盘同时监听
  2. 第一周第一节:有界函数,无界函数,符合函数
  3. 单端转差分电路详解(1)
  4. strongswan编译、配置
  5. SoA vs AoS
  6. 【米思米机械设备知识分享】- 游标卡尺使用方法介绍
  7. 有哪些值得推荐的c++11风格的开源项目?
  8. 如何阅读源码--以Vetur为例
  9. 前缀树算法模板秒杀 5 道算法题
  10. python startswith,老生常谈Python startswith()函数与endswith函数