第4章 scrapy爬取知名技术文章网站(1)

4-1 scrapy安装以及目录结构介绍

安装scrapy可以看我另外一篇博文:Scrapy的安装--------Windows、linux、mac等操作平台,现在是在虚拟环境中安装可能有不同。

1.创建有python3的虚拟环境

mkvirtualenv --python=C:UsersadminAppDataLocalProgramsPythonPython35python3.exe py3scrapy

2.安装scrapy

进入环境py3scrapy,pip install -i https://pypi.douban.com/simple/ scrapy 豆瓣源安装非常快。

3.补充

进入虚拟环境: workon py3scrapy

创建项目: scrapy startproject ArticleSpider

建立spider: scrapy genspider jobbole blog.jobbple.com

4-2 pycharm 调试scrapy 执行流程

1.运行爬虫文件

建立一个main.py文件,在ArticleSpider文件目录下

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

os.path.abspath(__file__) --------main.py目录

dirname() --------main.py父目录

2.要学会用断点和DEBUG

在实战中操作

4-3~5 xpath的用法

1.xpath简介

  • xpath使用路径表达式在xml和html中进行导航。
  • xpath包含标准函数库。
  • xpath是一个w3c的标准。

2.xpath节点关系

  • 父节点
  • 子节点
  • 同胞节点
  • 先辈节点
  • 后代节点

3.xpath语法



4.补充

为什么有时候自己写的xpath明明对的,却获取不到数据?

原因:F12产生的源码,不同于网页源代码,前者可能是js加载完的源代码。response.xpath()是根据网页源代码来提取信息的。

.

问题:No modle named ‘win32api’

解决: pip install -i https://pypi.douban.com/simple/ pypiwin32

.

contains()用法

response.xpath("//span[contains(@class, 'bookmark-btn')]/text()").extract()[0]

表示在span标签中class属性中含有 bookmark-btn 即为符合

.

正文保留html标签,以便后续研究

.

scrapy shell url 调试xpath

如果在py3中就都显示中文了

.

re.math(reg,html).group() #正则匹配

.

tag_list=['职场','2 评论','今昔']
[element for element in tag_list if not element.strip().endswith('评论')]

#结果['职场', '今昔']

4-6~7 css选择器实现字段解析



作者:今孝

出处:http://www.cnblogs.com/jinxiao-pu/p/6713333.html

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

原文地址:https://www.cnblogs.com/jinxiao-pu/p/6713333.html