scrapy基础知识+xpath基础知识

scrapy的框架如下:
在这里插入图片描述
其中:
scrapy-engine: 为scapy的引擎
scheduler:调度器(数据队列,将scrapy-engine传过来的request排队等待请求)
downloader:下载器
spiders:爬虫的解析器
item-pipeline:数据管道
middlewares:中间件(编写IP代理中间件,user-agent中间件等)

scrapy创建项目
1.建立工程:scrapy startproject +工程名(工程文件名)
如:scrapy startproject CSDNSpider
2.建立爬取项目:CD进入到刚才创建的工程文件名下后:scrapy genspider +工程文件名 + 需要爬取的域名
如:scrapy genspider csdn https://www.csdn.net/

pycharm打开后看到的结构如图:

在这里插入图片描述
scrapy的各个部分py文件:
spiders:编写爬取逻辑,发送爬虫请求,将数据下载下来
items:对需要爬取的字段进行定义,编写输入输出字段格式
pipeline:数据管道,抓取下来的数据通过提取出字段后会被传入pipeline中,在此处可以对数据进行入库或者保存为其他文档格式
middleware:中间件编写(编写IP代理中间件,user-agent中间件等)
setting:爬虫项目的设置
main:这个是自己创建的,用于调试

3.建立方便调试的main函数:
设置工程目录,需要设置才能让scrapy的exrcute生效:
sys.path.append()
获取目录路径使用python的os模块:
os.path.dirname(os.path.abspath(file))

在这里插入代码# -*- coding=utf-8 -*-

from scrapy.cmdline import execute
import os
import sys

sys.path.append(os.path.dirname(os.path.abspath(__file__)))

execute(["scrapy","crawl","jobbole"])

4.scrapy提供了shell方法方便对字段提取进行调试:
返回的数据使用response.txet查看源码

scrapy shell https://www.baidu.com

5.在setting中一定要设置# Obey robots.txt rules ROBOTSTXT_OBEY = False ,否则ROBOTSTXT协议会过滤掉很多url,有可能爬取不到想要的数据。

Xpath基础知识:
xpath的重要性超过bs4/css选择器,其他可以不懂,这个必须要懂!

XPath 是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航。
XPath 使用路径表达式在 XML 文档中进行导航
XPath 包含一个标准函数库
XPath 是 XSLT 中的主要元素
XPath 是一个 W3C 标准

基本语法:
xml.xpath(“bookstore”) 表示选取 bookstore 元素的所有子节点
xml.xpath(“/bookstore”) 表示选取根元素 bookstore。
xml.xpath(“bookstore/book”) 选取属于 bookstore 的子元素的所有 book 元素。
xml.xpath(“//book”) 选取所有 book 子元素,而不管它们在文档中的位置。
xml.xpath(“bookstore//book”) 选择属于 bookstore 元素的后代的所有 book 元素,而不管它们位于 bookstore 之下的什么位置。
xml.xpath(“//@lang”) 选取名为 lang 的所有属性。

其他语法以及函数在网上很多都可以找到,另外为方便使用浏览器提取数据,可以在Google浏览器安装一个xpathhelper插件

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值