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黑魔法@property装饰器的使用技巧解析
Jun 16 Python
python模块简介之有序字典(OrderedDict)
Dec 01 Python
python pandas dataframe 行列选择,切片操作方法
Apr 10 Python
详解Python中的分组函数groupby和itertools)
Jul 11 Python
python实现n个数中选出m个数的方法
Nov 13 Python
详解pandas如何去掉、过滤数据集中的某些值或者某些行?
May 15 Python
使用django的ORM框架按月统计近一年内的数据方法
Jul 18 Python
解决启动django,浏览器显示“服务器拒绝访问”的问题
May 13 Python
python模拟点击在ios中实现的实例讲解
Nov 26 Python
如何获取numpy array前N个最大值
May 14 Python
Python之基础函数案例详解
Aug 30 Python
一起来学习Python的元组和列表
Mar 13 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 的加密函数 md5,crypt,base64_encode 等使用介绍
2012/04/09 PHP
解决nginx不支持thinkphp中pathinfo的问题
2015/07/21 PHP
PHP多进程编程总结(推荐)
2016/07/18 PHP
thinkPHP实现签到功能的方法
2017/03/15 PHP
javascript 45种缓动效果 非常酷
2011/06/28 Javascript
Enter回车切换输入焦点实现思路与代码兼容各大浏览器
2014/09/01 Javascript
JavaScript设计模式之外观模式实例
2014/10/10 Javascript
js实现做通讯录的索引滑动显示效果和滑动显示锚点效果
2017/02/18 Javascript
Vue应用部署到服务器的正确方式
2017/07/15 Javascript
初识 Vue.js 中的 *.Vue文件
2017/11/22 Javascript
Vue 源码分析之 Observer实现过程
2018/03/29 Javascript
JS实现把一个页面层数据传递到另一个页面的两种方式
2018/08/13 Javascript
JavaScript实现预览本地上传图片功能完整示例
2019/03/08 Javascript
[02:28]PWL开团时刻DAY3——Ink Ice与DeMonsTer之间的勾心斗角
2020/11/03 DOTA
python和ruby,我选谁?
2017/09/13 Python
Pandas DataFrame 取一行数据会得到Series的方法
2018/11/10 Python
pandas计算最大连续间隔的方法
2019/07/04 Python
python3.6生成器yield用法实例分析
2019/08/23 Python
Python爬虫实现的根据分类爬取豆瓣电影信息功能示例
2019/09/15 Python
python list多级排序知识点总结
2019/10/23 Python
OpenCV里的imshow()和Matplotlib.pyplot的imshow()的实现
2019/11/25 Python
Python基于pandas爬取网页表格数据
2020/05/11 Python
Python Request类源码实现方法及原理解析
2020/08/17 Python
C++和python实现阿姆斯特朗数字查找实例代码
2020/12/07 Python
Pycharm plot独立窗口显示的操作
2020/12/11 Python
HTML5 本地存储和内容按需加载的思路和方法
2011/04/07 HTML / CSS
比驿:全球酒店比价网
2018/06/20 全球购物
澳大利亚领先的女性运动服品牌:Lorna Jane
2020/06/19 全球购物
施工资料员的岗位职责
2013/12/22 职场文书
大学生职业规划论文
2014/01/11 职场文书
会展策划与管理专业求职信
2014/06/09 职场文书
幼儿园中班教师个人工作总结
2015/02/06 职场文书
卫生院义诊活动总结
2015/05/07 职场文书
2016年党员学习廉政准则心得体会
2016/01/20 职场文书
公司员工违法违章行为检讨书
2019/06/24 职场文书
golang 语言中错误处理机制
2021/08/30 Golang