Scrapy的简单使用教程


Posted in Python onOctober 24, 2017

在这篇入门教程中,我们假定你已经安装了python。如果你还没有安装,那么请参考安装指南。

首先第一步:进入开发环境,workon article_spider

进入这个环境:

Scrapy的简单使用教程

安装Scrapy,在安装的过程中出现了一些错误:通常这些错误都是部分文件没有安装导致的,因为大学时经常出现,所以对解决这种问题,很实在,直接到http://www.lfd.uci.edu/~gohlke/pythonlibs/这个网站下载对应的文件,下载后用pip安装,具体过程不在赘述。

Scrapy的简单使用教程

然后进入工程目录,并打开我们的新创建的虚拟环境:

Scrapy的简单使用教程

新建scrapy工程:ArticleSpider

Scrapy的简单使用教程

创建好工程框架:在pycharm中导入

 Scrapy的简单使用教程

scrapy.cfg: 项目的配置文件。
ArticleSpeder/: 该项目的python模块。之后您将在此加入代码。
ArticleSpeder/items.py: 项目中的item文件。
ArticleSpeder/pipelines.py: 项目中的pipelines文件。
ArticleSpeder/settings.py: 项目的设置文件。
ArticleSpeder/spiders/: 放置spider代码的目录。

回到dos窗口用basic创建模板

Scrapy的简单使用教程

上面pycharm的截图中已经创建好了:

为了今后更好的开发,创建一个用于debug的类main.py

from scrapy.cmdline import execute
import sys
import os
print(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
execute(["scrapy","crawl","jobbole"])

 这是代码内容

import sys 为了设置工程目录,调用命令才会生效

里面的路径最好不要写死:可以通过os获取路径,更加灵活

execute用来执行目标程序的

jobbole.py的内容

class JobboleSpider(scrapy.Spider):
name = 'jobbole'
allowed_domains = ['blog.jobbole.com']
start_urls = ['http://blog.jobbole.com/110287']

def parse(self, response):
re_selector = response.xpath("/html/body/div[1]/div[3]/div[1]/div[1]/h1")
re2_selector = response.xpath('//*[@id="post-110287"]/div[1]/h1')
title = response.xpath('//div[@class="entry-header"]/h1/text()')
create_date = response.xpath("")
#//*[@id="112706votetotal"]
dian_zan = int(response.xpath("//span[contains(@class,'vote-post-up ')]/h10/text()").extract()[0])
pass

 通过xpath技术获取对应文章的一些字段信息,包括标题,时间,评论数,点赞数等,因为比较简单所以不在赘述

写到这儿,大家也知道每次在pycharm里面debug和麻烦,因为scrapy比较大,所以这时候我们可以使用Scrapy shell来调试

Scrapy的简单使用教程

标记部分是目标网站的地址:现在我们可以更加愉悦的进行调试了。

今天scrapy的初体验就到这里了

Python 相关文章推荐
python数据结构之二叉树的建立实例
Apr 29 Python
Windows下安装python2.7及科学计算套装
Mar 05 Python
python基于pyDes库实现des加密的方法
Apr 29 Python
Python常见字符串操作函数小结【split()、join()、strip()】
Feb 02 Python
Python运维之获取系统CPU信息的实现方法
Jun 11 Python
python实现机器学习之多元线性回归
Sep 06 Python
python占位符输入方式实例
May 27 Python
Python秒算24点实现及原理详解
Jul 29 Python
浅谈Django2.0 加xadmin踩的坑
Nov 15 Python
修改Pandas的行或列的名字(重命名)
Dec 18 Python
教你如何用Python实现人脸识别(含源代码)
Jun 23 Python
Python  序列化反序列化和异常处理的问题小结
Dec 24 Python
详解python里使用正则表达式的分组命名方式
Oct 24 #Python
在python中使用正则表达式查找可嵌套字符串组
Oct 24 #Python
python爬虫之BeautifulSoup 使用select方法详解
Oct 23 #Python
浅谈python中copy和deepcopy中的区别
Oct 23 #Python
python的构建工具setup.py的方法使用示例
Oct 23 #Python
python使用pyqt写带界面工具的示例代码
Oct 23 #Python
基于Django的python验证码(实例讲解)
Oct 23 #Python
You might like
php中设置多级目录session的问题
2011/08/08 PHP
深入PHP变量存储的详解
2013/06/13 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(三)
2014/06/23 PHP
php设计模式之单例模式代码
2016/06/11 PHP
PHP未登录自动跳转到登录页面
2016/12/21 PHP
IE8 引入跨站数据获取功能说明
2008/07/22 Javascript
jquery实现的超出屏幕时把固定层变为定位层的代码
2010/02/23 Javascript
jquery插件validate验证的小例子
2013/05/08 Javascript
js弹出层包含flash 不能关闭隐藏的2种处理方法
2013/06/17 Javascript
js中的preventDefault与stopPropagation详解
2014/01/29 Javascript
点击显示指定元素隐藏其他同辈元素的方法
2014/02/19 Javascript
jQuery Validate初步体验(二)
2015/12/12 Javascript
JavaScript学习笔记之创建对象
2016/03/25 Javascript
javascript+html5+css3自定义弹出窗口效果
2017/10/26 Javascript
基于Vue的SPA动态修改页面title的方法(推荐)
2018/01/02 Javascript
微信小程序实现手势图案锁屏功能
2018/01/30 Javascript
Vue作用域插槽slot-scope实例代码
2018/09/05 Javascript
IE浏览器下JS脚本提交表单后,不能自动提示问题解决方法
2019/06/04 Javascript
Koa从零搭建到Api实现项目的搭建方法
2019/07/30 Javascript
layui checkbox默认选中,获取选中值,清空所有选中项的例子
2019/09/02 Javascript
解决vue下载后台传过来的乱码流的问题
2020/12/05 Vue.js
Python读写docx文件的方法
2018/05/08 Python
python用fsolve、leastsq对非线性方程组求解
2018/12/15 Python
pyinstaller打包opencv和numpy程序运行错误解决
2019/08/16 Python
Tensorflow与Keras自适应使用显存方式
2020/06/22 Python
移动端解决悬浮层(悬浮header、footer)会遮挡住内容的3种方法
2015/03/27 HTML / CSS
Html5监听手机摇一摇事件的实现
2019/11/07 HTML / CSS
远东集团网络工程师面试题
2014/10/20 面试题
网络工程师的自我评价
2013/10/02 职场文书
公司业务主管岗位职责
2013/12/07 职场文书
竞选村长演讲稿
2014/04/28 职场文书
销售内勤岗位职责
2015/02/10 职场文书
校长个人总结
2015/03/03 职场文书
前台接待员岗位职责
2015/04/15 职场文书
2019年思想汇报
2019/06/20 职场文书
MySQL数据管理操作示例讲解
2022/12/24 MySQL