18-Python快速开发分布式搜索引擎Scrapy精讲Scrapy启动文件的配置xpath表达式

20次阅读

共计 1586 个字符,预计需要花费 4 分钟才能阅读完成。

【百度云搜索,搜各种资料:http://www.bdyss.cn】

【搜网盘,搜各种资料:http://www.swpan.cn】

我们自定义一个 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)

 
【转载自:http://www.lqkweb.com】

正文完
 0