python Scrapy框架原理解析
作者:划水De雁晓明 发布时间:2022-08-07 06:17:20
标签:python,Scrapy,框架
Python 爬虫包含两个重要的部分:正则表达式和Scrapy框架的运用, 正则表达式对于所有语言都是通用的,网络上可以找到各种资源。
如下是手绘Scrapy框架原理图,帮助理解
如下是一段运用Scrapy创建的spider:使用了内置的crawl模板,以利用Scrapy库的CrawlSpider。相对于简单的爬取爬虫来说,Scrapy的CrawlSpider拥有一些网络爬取时可用的特殊属性和方法:
$ scrapy genspider country_or_district example.python-scrapying.com--template=crawl
运行genspider命令后,下面的代码将会在example/spiders/country_or_district.py中自动生成。
# -*- coding: utf-8 -*-
import scrapy
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule
from example.items import CountryOrDistrictItem
class CountryOrDistrictSpider(CrawlSpider):
name = 'country_or_district'
allowed_domains = ['example.python-scraping.com']
start_urls = ['http://example.python-scraping.com/']
rules = (
Rule(LinkExtractor(allow=r'/index/', deny=r'/user/'),
follow=True),
Rule(LinkExtractor(allow=r'/view/', deny=r'/user/'),
callback='parse_item'),
)
def parse_item(self, response):
item = CountryOrDistrictItem()
name_css = 'tr#places_country_or_district__row td.w2p_fw::text'
item['name'] = response.css(name_css).extract()
pop_xpath = '//tr[@id="places_population__row"]/td[@class="w2p_fw"]/text()'
item['population'] = response.xpath(pop_xpath).extract()
return item
爬虫类包括的属性:
name: 识别爬虫的字符串。
allowed_domains: 可以爬取的域名列表。如果没有设置该属性,则表示可以爬取任何域名。
start_urls: 爬虫起始URL列表。
rules: 该属性为一个通过正则表达式定义的Rule对象元组,用于告知爬虫需要跟踪哪些链接以及哪些链接包含抓取的有用内容。
来源:https://www.cnblogs.com/yxmings/p/14226696.html


猜你喜欢
- 段正淳的css笔记(1)分类之间的横竖线:试想过总结出这几年来写css与xhtml的经验 ,汇总成一片”旷世奇文”分享给大家。无奈寡人年世已
- 引言写这篇文章主要是周末休息太无聊,看了看别人代码,发现基本上要么是多协程下载文件要么就只有单协程的断点续传,所以就试了试有进度条的多协程下
- python中return不返回值是因为你没有将返回的值取出来。解决方法:调用函数,将函数的返回值赋给一个变量,输出这个变量就可以看到函数的
- 请先看看以下演示中的图案文字。这可不是图片效果,而是用CSS滤镜中的Chroma() 语句做成的文本文
- 正文之前前阵子做了个《人工智能》 的课程作业,然后写了个人工智障。。。大概就是个可以跟你下五子棋的傻儿子。。。下面是代码和效果正文 1、 摘
- 素数(prime number)也叫质数,为大于1的且除1和本身以外不再有其他因数的自然数,与之相对的是合数,素数有无限个。计算小于N的素数
- 1、手上目前拥有数据集是一大坨,没有train,test,val的划分如图所示2、目录结构:|---data |
- 1.添加新用户只允许本地IP访问create user 'test'@'localhost' identif
- 简介Python Fire是谷歌开源的一个第三方库,用于从任何Python对象自动生成命令行接口(CLI),可用于如快速拓展成命令行等形式。
- python是一个很有趣的语言,可以在命令行窗口运行。python中有很多功能强大的模块,这篇经验告诉你,如何使用python的pygal模
- 在网站中经常会生成表格,CSV和Excel都是常用的报表格式,CSV相对来说比较简单,如果大家有疑问我会相继发布一些CSV的实例,这里主要介
- 一、python机器学习–线性回归线性回归是最简单的机器学习模型,其形式简单,易于实现,同时也是很多机器学习模型的基础。对于一个给定的训练集
- 根据我们指定的条件检索函数中的元素import matplotlib.pyplot as pltimport numpy as npa =
- 相信每一个 javascript 学习者,都会去了解 JS 的各种基本数据类型,数组就是数据的组合,这是一个很基本也十分简单的概念,他的内容
- 一、实验介绍1.1 实验内容在本节课中,我们将讲解Pygame的常用对象及其操作,包括图形、动画、文字、音频等,确保同学们对Pygame有一
- 本文为大家分享了pygame游戏之旅的第3篇,供大家参考,具体内容如下载入car图片(我自己画的),需要用到pygame.image模块,定
- 目录1.列表2.使用格式3.一些很有用的函数4.元组 tuple5.元组的常用函数1.列表python没有数组,而是引入了列表(list),
- 前言在论坛中回答了一个问题,导入csv 数据,并对导入的数据增加一个新的列date datetime。要求在10s内完成,200w行数据的导
- 1.包: package PaintBrush; /** * * @author lucifer */ public class Paint
- 程序设计中我们时常需要检测用户输入是否正确,特别是姓名,地址等等是不是输入的汉字。那么,如何判断一个字符是不是汉字呢?其实在asp中至少有两