• 第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

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

  • 相关阅读:
    python学习之模块补充二
    MySQL的表关系
    初识数据库
    MySQL基础
    死锁 递归锁 信号量 Event事件 线程q
    进程池/线程池与协程
    线程
    进程相关知识点
    python 之多进程
    socket 基础
  • 原文地址:https://www.cnblogs.com/jinxiao-pu/p/6713333.html
Copyright © 2020-2023  润新知