• 十八 Python分布式爬虫打造搜索引擎Scrapy精讲—Scrapy启动文件的配置—xpath表达式


    我们自定义一个main.py来作为启动文件

    main.py

    复制代码
    #!/usr/bin/env python
    # -*- coding:utf8 -*-
    
    from scrapy.cmdline import execute  #导入执行scrapy命令方法
    import sys
    import os
    
    sys.path.append(os.path.join(os.getcwd())) #给Python解释器,添加模块新路径 ,将main.py文件所在目录添加到Python解释器
    
    execute(['scrapy', 'crawl', 'pach', '--nolog'])  #执行scrapy命令
    复制代码

    爬虫文件

    复制代码
    # -*- coding: utf-8 -*-
    import scrapy
    from scrapy.http import Request
    import urllib.response
    from lxml import etree
    import re
    
    
    class PachSpider(scrapy.Spider):
        name = 'pach'
        allowed_domains = ['blog.jobbole.com']
        start_urls = ['http://blog.jobbole.com/all-posts/']
    
    
        def parse(self, response):
            pass
    复制代码

    xpath表达式

    1、

    2、

    3、

    基本使用

    allowed_domains设置爬虫起始域名
    start_urls设置爬虫起始url地址
    parse(response)默认爬虫回调函数,response返回的是爬虫获取到的html信息对象,里面封装了一些关于htnl信息的方法和属性


    responsehtml信息对象下的方法和属性
    response.url获取抓取的rul
    response.body获取网页内容
    response.body_as_unicode()获取网站内容unicode编码
    xpath()方法,用xpath表达式过滤节点
    extract()方法,获取过滤后的数据,返回列表

    复制代码
    # -*- coding: utf-8 -*-
    import scrapy
    
    class PachSpider(scrapy.Spider):
        name = 'pach'
        allowed_domains = ['blog.jobbole.com']
        start_urls = ['http://blog.jobbole.com/all-posts/']
    
        def parse(self, response):
            leir = response.xpath('//a[@class="archive-title"]/text()').extract()  #获取指定标题
            leir2 = response.xpath('//a[@class="archive-title"]/@href ').extract() #获取指定url
    
            print(response.url)    #获取抓取的rul
            print(response.body)   #获取网页内容
            print(response.body_as_unicode())  #获取网站内容unicode编码
    
            for i in leir:
                print(i)
            for i in leir2:
                print(i)
    复制代码

     

  • 相关阅读:
    [PDF]阅读、注释最佳软件
    [CentOS 7]挂载ntfs格式U盘
    如何更改键盘按键---KeyTweak?
    ssh 文件上传、文件目录上传和下载
    centos7安装Anaconda(Anaconda3-2020.02-Linux-x86_64)与基本命令使用
    Ubuntu 下SVN常用操作
    程序员常用docker命令
    numpy&pandas
    Deep Learning with pytorch笔记(第三章)
    pytorch中的ReflectionPad2d
  • 原文地址:https://www.cnblogs.com/meng-wei-zhi/p/8182670.html
Copyright © 2020-2023  润新知