0. 楔子(一个最简单的案例)

1.scrapy.Spider

scrapy.spiders.Spider

name

allowed_domains

start_urls

custom_settings

:在爬虫运行时用这个属性里的设置覆盖默认设置,它本身是字典格式的。

Crawler

该属性在初始化类之后由from_crawler()类方法设置,并链接到此蜘蛛实例绑定到的Crawler对象。

爬虫程序在项目中封装了大量的组件,用于单一入口访问(例如扩展,中间件,信号管理器等)。 请参阅Crawler API以了解更多关于它们的信息

Settings

这个爬虫的设置

Logger

日志

from_crawler(crawler*args**kwargs)

创建自己的爬虫,一般不需要重写,默认设置在scrapy.spider._init_py里。

start_requests()

返回一个生成器,用来发送爬取请求。Start_url[]中的url地址会默认的调用这个函数发送网页爬取请求。

parse(response)

解析响应,从返回的网页响应中提取数据。

log(message[, levelcomponent])

设置爬虫的日志,

closed(reason)

关闭爬虫

2.CrawlSpider

scrapy.spiders.CrawlSpider

相较于spider.Spider它提供rules对象以便爬取跟随连接,实现多级爬虫

Rules对象定义如下,爬虫根据rules定义的规则爬取网站,多个规则匹配同一条连接的时候按照顺序只输出第一条连接。

parse_start_url(response)

处理响应,返回一个Item或者request,或者一个包含两者的可迭代对象。

Rules类定义如下

Class scrapy.spiders.Rule(link_extractorcallback=Nonecb_kwargs=Nonefollow=None,process_links=Noneprocess_request=None)

link_extractor是连接提取器类,提取需要的链接。

Callback回调函数,解析或者爬取每一条提取出来的链接,返回一个Item/response列表,或者一个同时包括两者的列表。

Cb_kwargs回调函数字典类型的参数

Follow 对通过这个规则抽取出来的链接是否跟进,如果没有回调函数,默认为True,否则默认为False

Process-links是一个函数或则一个爬虫的名字,对提取出来的链接起一个过滤的作用。

Eg:

import scrapy

from scrapy.spiders import CrawlSpider, Rule

from scrapy.linkextractors import LinkExtractor

class MySpider(CrawlSpider):

    name = 'example.com'

    allowed_domains = ['example.com']

    start_urls = ['http://www.example.com']

    rules = (

        # Extract links matching 'category.php' (but not matching 'subsection.php')

        # and follow links from them (since no callback means follow=True by default).

        Rule(LinkExtractor(allow=('category\.php', ), deny=('subsection\.php', ))),

        # Extract links matching 'item.php' and parse them with the spider's method parse_item

        Rule(LinkExtractor(allow=('item\.php', )), callback='parse_item'),

    )

    def parse_item(self, response):

        self.logger.info('Hi, this is an item page! %s', response.url)

        item = scrapy.Item()

        item['id'] = response.xpath('//td[@id="item_id"]/text()').re(r'ID: (\d+)')

        item['name'] = response.xpath('//td[@id="item_name"]/text()').extract()

        item['description'] = response.xpath('//td[@id="item_description"]/text()').extract()

        return item

2.XMLFeedSpider

scrapy.spiders.XMLFeedSpider

主要用来爬取XML网页

3. CSVFeedSpider

主要用来解析CSF网页

4. SitemapSpider

scrapy.spiders.SitemapSpider

解析网站的robots.txt规则,建立网站地图,实现整站爬取(这个整站爬取是被动的,即你必须知道robots,或提前输入关于这个网站需要爬取的链接)

sitemap_urls一个需要爬取的url地址的列表

sitemap_rules一个存放爬取规则的列表,爬取规则为一个元组(regex, callback)

sitemap_follow所爬取的url地址所共同匹配的正则表达式列表

sitemap_alternate_links如果为真,取回除语言外完全相同的网址,如http://example.com/en

,默认为假。

5. 选择器:

Eg:

同时,选择器可以使用正则表达式

3.Item

将非结构化的数据变成结构化数据,

classscrapy.item.Item([arg])中声明

使用条目装载机装载条目,

Eg:

3. Item Pipeline

classscrapy.loader.ItemLoader([itemselectorresponse, ]**kwargs)

当爬虫爬取一个条目时,这个条目将被发送到项目管道,通过依次执行的几个组件处理数据,每个管道组件(有时也称为“管道”)是一个实现简单方法的Python类。

项目管道的典型用途是:

  • 获取干净的HTML数据
  • 验证爬取的数据(检查项目是否包含某些字段)
  • 检查重复(并删除它们)
  • 将爬取的项目存储在数据库中

每个项目管道组件是一个Python类,必须实现process_item(selfitemspider)方法:

process_item(selfitemspider):返回一个字典或者一个Item类或者或者一个twited deferred(https://twistedmatrix.com/documents/current/core/howto/defer.html)对象或者一个异常。

Spider与item是对应的关系。

open_spider(selfspider):当spider开始运行时,运行这个函数

close_spider(selfspider)

from_crawler(clscrawler)如果存在,则调用此类方法从Crawler创建管道实例。 它必须返回一个新的管道实例。 抓取对象提供对所有Scrapy核心组件的访问,如设置和信号; 这是管道访问它们并将其功能挂接到Scrapy的一种方式

Eg

异常:

存储到json:

存储到MongoDB

去重:

假设ID唯一

4.Requests

Class scrapy.http.Request(url[, callbackmethod='GET'headersbodycookiesmetaencoding='utf-8'priority=0dont_filter=Falseerrbackflags])

由spider产生发送到downloader

避免与现有cookies合并

priority (int)设置爬取的优先级,默认是0;

dont_filter(boolean)参数为true是表示这个请求不应该被调度器过滤掉。 当您想要多次执行相同的请求时使用此选项,以忽略重复过滤器。 小心使用它,否则你将进入爬行循环。 默认为False。

errback (callable)异常处理函数

flags (list):发送到请求的标志可用于日志记录或类似的目的。

Request.meta special keysRequest.meta属性可以包含任意的数据,但是Scrapy和它的内置扩展可以识别一些特殊的键。

Those are:

  • · dont_redirect
  • · dont_retry
  • · handle_httpstatus_list
  • · handle_httpstatus_all
  • · dont_merge_cookies (see cookies parameter of Request constructor)
  • · cookiejar
  • · dont_cache
  • · redirect_urls
  • · bindaddress
  • · dont_obey_robotstxt
  • · download_timeout
  • · download_maxsize
  • · download_latency
  • · download_fail_on_dataloss
  • · proxy
  • · ftp_user (See FTP_USER for more info)
  • · ftp_password (See FTP_PASSWORD for more info)
  • · referrer_policy
  • · max_retry_times

class scrapy.http.FormRequest(url[formdata...])

requests的子类,主要用于表单处理

类方法:

from_response(response[, formname=None, formid=None, formnumber=0,formdata=None, formxpath=None, formcss=None, clickdata=None, dont_click=False, ...])

返回一个新的FormRequest对象,其表单字段值预填充在给定响应中包含的HTML <form>元素中。 有关示例,模拟用户登录。

该策略默认情况下会自动模拟任何可点击的表单控件(如<input type =“submit”>)的点击。 即使这是相当方便的,而且往往是所期望的行为,有时它可能会导致难以调试的问题。 例如,处理使用javascript填充和/或提交的表单时,默认的from_response()行为可能不是最合适的。 要禁用此行为,可以将dont_click参数设置为True。 另外,如果你想改变点击的控件(而不是禁用它),你也可以使用clickdata参数。

参数:

  • response (Response object) – 该响应包含将用于预填充表单字段的HTML表单
  • formname (string) – 如果给定,将使用具有设置为此值的name属性的形式。
  • formid (string) – 如果给定,将使用具有设置为此值的id属性的形式。
  • formxpath (string) – 如果给定,将使用与xpath匹配的第一个表单。
  • formcss (string) – 如果给定,将使用与css选择器匹配的第一个表单。
  • formnumber (integer) – 要使用的表单的数量,当响应包含多个表单时。第一个(也是默认值)是 0。
  • formdata (dict) – 字段在表单数据中覆盖。如果响应 <form> 元素中已存在字段,则其值将被在此参数中传递的值覆盖。
  • clickdata (dict) – 属性来查找单击的控件。如果没有提供,表单数据将被提交,模拟第一个可点击元素的点击。除了html属性,控件可以通过其相对于窗体中其他提交表输入的基于零的索引,通过 nr 属性来标识。
  • dont_click (boolean) – 如果为True,表单数据将在不点击任何元素的情况下提交。

5.response

class scrapy.http.Response(url[, status=200, headers=None, body=b'', flags=None, request=None])

urljoin(url):可以将相对url地址结合成绝对url地址

follow(urlcallback=Nonemethod='GET'headers=Nonebody=Nonecookies=Nonemeta=None,encoding='utf-8'priority=0dont_filter=Falseerrback=None)

返回请求实例以跟随链接url。 它接受与Request .__ init__方法相同的参数,但是url可以是相对URL或scrapy.link.Link对象,不仅是绝对URL。

除了绝对/相对URL和链接对象,TextResponse提供了一个支持选择器的follow()方法,这个两个函数可以用来翻页。

Eg:

Urljoin

Follow()

classscrapy.http.TextResponse(url[, encoding[, ...]])response的子类,增加了编码功能。

新的属性有:

TextResponse body, as unicode.

Encoding与此响应编码的字符串。 通过尝试以下机制来解决编码问题:

10.1 在构造函数编码参数中传递的编码

10.2在Content-Type HTTP头中声明的编码。 如果这种编码是无效的(即未知的),它将被忽略,并尝试下一个解析机制。

10.3在响应正文中声明的编码。 TextResponse类不提供任何特殊的功能。 但是,HtmlResponse和XmlResponse类可以。

10.4通过查看响应主体来推断编码。 这是更脆弱的方法,也是最后一个尝试。

Selector;选择器实例化类

xpath(query)可以直接用response.xpath('//p')
css(query)可以直接用response.css('p')

class scrapy.http.HtmlResponse(url[, ...])HtmlResponse类是TextResponse的一个子类,它通过查看HTML meta http-equiv属性来添加编码自动发现支持,对应10.3。

class scrapy.http.XmlResponse(url[, ...])同上。

10.Link Extractors连接提取器

接口在scrapy.linkextractors.LinkExtractor

每个链接提取器唯一的公共方法是extract_links,它接收一个Response对象并返回一个scrapy.link.Link对象列表。 链接提取器的意图是实例化一次,他们的extract_links方法多次调用不同的响应来提取链接。

链接提取器通过一组规则在CrawlSpider类中使用(在Scrapy中可用),但是即使您不从CrawlSpider继承,也可以在您的蜘蛛中使用它,因为它的目的非常简单:提取链接。

Class scrapy.linkextractors.lxmlhtml.LxmlLinkExtractor(allow=(), deny=(), allow_domains=(),deny_domains=(), deny_extensions=None, restrict_xpaths=(), restrict_css=(), tags=('a', 'area'), attrs=('href', ),canonicalize=False, unique=True, process_value=None, strip=True)

LxmlLinkExtractor是推荐的链接提取器,具有方便的过滤选项。 它使用lxml健壮的HTMLParser实现。

参数:

allow(一个正则表达式(或者列表)) - 一个正则表达式(或者正则表达式列表),为了被提取,(绝对)url必须匹配。如果没有给(或空),它将匹配所有链接。

deny(正则表达式(或列表)) - (绝对)网址必须匹配才能排除(即未提取)的单个正则表达式(或正则表达式列表)。它优先于allow参数。如果没有给(或空)它不会排除任何链接。

allow_domains(str或list) - 一个单独的值或一个包含域的字符串列表,这些字段将被用于提取链接。

deny_domains(str或者list) - 一个单独的值或者一个包含域的字符串列表,不会被认为是用于提取链接。

deny_extensions(list) - 包含扩展的单个值或字符串列表,在提取链接时应被忽略。如果没有给出,它将默认为在scrapy.linkextractors包中定义的IGNORED_EXTENSIONS列表。

restrict_xpaths(str或list) - 是一个XPath(或XPath的列表),它定义了应该从中提取链接的响应内的区域。如果给定,只有这些XPath选择的文本将被扫描链接。看下面的例子。

restrict_css(str或者list) - 一个CSS选择器(或者选择器列表),它定义了应该从中提取链接的响应内的区域。具有与restrict_xpaths相同的行为。

tags(str或list) - 提取链接时要考虑的标记或标记列表。默认为('a','area')

attrs(list) - 查找提取链接时仅考虑在tags参数中指定的标签时应考虑的属性或属性列表。默认为('href',)

unique(boolean) - 是否应该对提取的链接应用重复过滤。

process_value(可调用) - 接收从tags和attrs中提取的每个值并且可以修改该值并返回新的值,或者返回None来忽略该链接的功能。如果没有给出,process_value默认为lambda x:x。

canonicalize(Boolean) - 规范每个提取的URL(使用w3lib.url.canonicalize_url)。 默认为False。 请注意,canonicalize_url是用于重复检查; 它可以更改服务器端可见的URL,因此对于使用规范化和原始URL的请求,响应可能会有所不同。 如果您使用LinkExtractor来跟踪链接,那么保持默认的canonicalize = False更健壮。

strip(boolean) - 是否从提取的属性中去除空白。 根据HTML5标准,必须从<a>,<area>和许多其他元素,<img>,<iframe>元素的src属性等从href属性中去除前导和尾随空白,因此LinkExtractor会在默认情况下删除空格字符。 设置strip = False将其关闭(例如,如果您从允许前/后空格的元素或属性中提取url)。

11. Setting

Setting源文件位置:scrapy.setting,default_settings,py

11.1  为每一个爬虫定制自己的设置选项

11.2  在命令行窗口下定制设置选项

11.3  在项目的setting.py里直接修改

11.4  访问setting

11.5  通过from_crawler()函数访问setting

11.6  默认的设置

AWS_ACCESS_KEY_ID:AWS访问口令字

AWS_SECRET_ACCESS_KE:AWS访问秘钥

BOT_NAME:项目名称

CONCURRENT_ITEMS:在项目处理器(也称为Item Pipeline)中并行处理的最大并行items数(每个响应)。

CONCURRENT_REQUESTS:Scrapy下载器将执行的并发(即同时)请求的最大数量。

CONCURRENT_REQUESTS_PER_DOMAIN: 对任何单个域执行的并发(即同时)请求的最大数目。

CONCURRENT_REQUESTS_PER_IP: 对任何单个IP执行的并发(即同时)请求的最大数目。

DEFAULT_ITEM_CLASS: Default: 'scrapy.item.Item'

DEFAULT_REQUEST_HEADERS:

DEPTH_LIMIT: Default:0

DEPTH_PRIORITY:默认是0,正值是广度优先爬取,负值深度优先爬取。

DEPTH_STATS:Default:True,是否收集最大的深度统计。

DEPTH_STATS_VERBOSE:默认是FALSE, 是否收集详细深度统计信息。 如果启用此功能,则会在统计信息中收集每个深度的请求数量。

DNSCACHE_ENABLED:Default:True是否启用DNS内存中缓存。

DNSCACHE_SIZE:Default:10000

DNS_TIMEOUT:60s

DOWNLOADER:Default: 'scrapy.core.downloader.Downloader'

DOWNLOADER_HTTPCLIENTFACTORY:Default:'scrapy.core.downloader.webclient.ScrapyHTTPClientFactory'

DOWNLOADER_CLIENT_TLS_METHOD:Default:'TLS',使用此设置可以自定义默认HTTP / 1.1下载器使用的TLS / SSL方法。

该设置必须是以下字符串值之一:

'TLS':映射到OpenSSL的TLS_method()(又名SSLv23_method()),它允许从平台支持的最高层开始进行协议协商。 默认,推荐

'TLSv1.0':这个值强制HTTPS连接使用TLS版本1.0; 设置这个如果你想Scrapy <1.1的行为

“TLSv1.1”:强制TLS版本1.1

“TLSv1.2”:强制TLS版本1.2

“SSLv3”:强制SSL版本3(不推荐)

DOWNLOADER_MIDDLEWARES:Default:{}

DOWNLOADER_MIDDLEWARES_BASE

包含Scrapy中默认启用的下载器中间件的字典。 低序靠近引擎,高序靠近下载器。 您不应该在您的项目中修改此设置,而是修改DOWNLOADER_MIDDLEWARES。

 

DOWNLOADER_STATS:默认值:True,是否启用下载器统计信息收集。

DOWNLOAD_DELAY:默认值:0

从同一网站下载连续页面之前,下载者应等待的时间(以秒为单位)。 这可以用来限制爬行速度,以避免打太大的服务器。 支持十进制数字。 例:

 

DOWNLOAD_DELAY = 0.25#250毫秒的延迟

此设置也受到RANDOMIZE_DOWNLOAD_DELAY设置(默认情况下启用)的影响。 默认情况下,Scrapy不会在两次请求之间等待一段固定时间,而是使用0.5 * DOWNLOAD_DELAY和1.5 * DOWNLOAD_DELAY之间的随机时间间隔。

当CONCURRENT_REQUESTS_PER_IP非零时,每个IP地址而不是每个域强制执行延迟。

您也可以通过设置download_delay spider属性来更改每个蜘蛛的此设置。

DOWNLOAD_HANDLERS:默认:{}

包含在您的项目中启用的请求下载程序处理程序的字典。 例子,请参阅DOWNLOAD_HANDLERS_BASE格式。

 

DOWNLOAD_HANDLERS_BASE

DOWNLOAD_TIMEOUT:默认:180

下载器在超时之前等待的时间(以秒为单位)

可以使用download_timeout spider属性和使用download_timeout Request.meta项的每个请求来为每个蜘蛛设置此超时。

DOWNLOAD_MAXSIZE:每个响应最大是下载尺寸,默认是:1073741824 (1024MB)

可以使用download_timeout spider属性和使用download_timeout Request.meta项的每个请求来为每个蜘蛛设置此超时。

如果设为0,则表示没有限制。

DOWNLOAD_WARNSIZE:默认:33554432(32MB)

下载器将开始发出警告的响应大小(以字节为单位)。

如果你想禁用它设置为0。

 

DOWNLOAD_FAIL_ON_DATALOSS:默认值:True.

损坏了的响应是否引发异常,即声明的Content-Length与服务器发送的内容不匹配,或者分块的响应没有正确完成。 如果为True,则这些响应会引发ResponseFailed([_DataLoss])错误。 如果为False,则通过这些响应,并将标志数据信息添加到响应中,即:response.flags中的'dataloss'为True。

或者,可以通过使用download_fail_on_dataloss Request.meta键为False来设置每个请求的基础。

在这几种情况下,从服务器配置错误到网络错误到数据损坏,都可能发生错误的响应或数据丢失错误。 由用户决定是否有意义处理破坏的回应,因为他们可能包含部分或不完整的内容。 如果设置:RETRY_ENABLED为True,并且此设置设置为True,则ResponseFailed([_ DataLoss])失败将照常重试。

 

DUPEFILTER_CLASS:默认:'scrapy.dupefilters.RFPDupeFilter',用于检测和过滤重复请求的类。

基于请求指纹的默认(RFPDupeFilter)过滤器使用scrapy.utils.request.request_fingerprint函数。 为了改变检查重复的方式,你可以继承RFPDupeFilter并覆盖它的request_fingerprint方法。 这个方法应该接受scrapy Request对象并返回它的指纹(一个字符串)。

您可以通过将DUPEFILTER_CLASS设置为“scrapy.dupefilters.BaseDupeFilter”来禁用对重复请求的过滤。 但是这样设置可能会进入爬行循环。 在不应该被过滤的特定请求上,将dont_filter参数设置为True通常是个好主意。

 

DUPEFILTER_DEBUG:默认:False

默认情况下,RFPDupeFilter只记录第一个重复的请求。 将DUPEFILTER_DEBUG设置为True将使其记录所有重复的请求。

 

EDITOR:默认:vi(在Unix系统上)或IDLE编辑器(在Windows上)

编辑器用于使用编辑命令编辑蜘蛛。 此外,如果EDITOR环境变量已设置,则编辑命令将优先于默认设置

 

EXTENSIONS:默认:: {}

包含在您的项目中启用的扩展的字典,以及他们的顺序。

 

EXTENSIONS_BASE

FTP_PASSIVE_MODE:默认值:True

 

启动FTP传输时是否使用被动模式。

FTP_PASSWORD:默认值:“guest”

Request meta中没有“ftp_password”时用于FTP连接的密码。

FTP_USER:默认:“anonymous” 

Request meta中没有“ftp_user”时用于FTP连接的用户名。

 

ITEM_PIPELINES:默认:{}

包含要使用的项目管道的字典及其顺序。 顺序值是任意的,但通常在0-1000范围内定义它们。低顺序的在高顺序之前执行。

 

LOG_ENABLED:Default:True

LOG_ENCODING:Default:'utf-8'

 

LOG_FILE:默认:None

用于记录输出的文件名。 如果没有,将使用标准(print)错误。

 

LOG_FORMAT:Default:'%(asctime)s [%(name)s] %(levelname)s: %(message)s'

LOG_DATEFORMAT:Default:'%Y-%m-%d %H:%M:%S'

LOG_LEVEL:Default:'DEBUG'

LOG_STDOUT:默认:False

如果为True,则所有标准输出(和错误)将被重定向到日志。 例如,如果您打印“hello”,它将出现在Scrapy日志中。

 

LOG_SHORT_NAMES:默认:False

如果为True,日志将只包含根路径。 如果设置为False,则显示负责日志输出的组件

 

MEMDEBUG_ENABLED:默认:False

是否启用内存调试

 

MEMDEBUG_NOTIFY:默认:[]

当启用内存调试时,如果此设置不为空,内存报告将被发送到指定的地址,否则报告将被写入日志。

Example:MEMDEBUG_NOTIFY = ['user@example.com']

 

MEMUSAGE_ENABLED:默认值:True

范围:scrapy.extensions.memusage

是否启用内存使用扩展。 该扩展跟踪进程使用的峰值内存(将其写入统计信息)。 当超过内存限制(见MEMUSAGE_LIMIT_MB)时,它也可以选择关闭Scrapy进程,并在发生这种情况时通过电子邮件通知(请参阅MEMUSAGE_NOTIFY_MAIL)。

 

MEMUSAGE_NOTIFY_MAIL:默认:False

范围:scrapy.extensions.memusage

如果已达到内存限制,则通知电子邮件列表。

例:MEMUSAGE_NOTIFY_MAIL = ['user@example.com']

 

REDIRECT_MAX_TIMES:Default:20

REDIRECT_PRIORITY_ADJUST:默认值:+2

 

范围:scrapy.downloadermiddlewares.redirect.RedirectMiddleware

调整相对于原始请求的重定向请求优先级:

积极的优先级调整(默认)意味着更高的优先级。

负面的优先调整意味着低优先级。

 

RETRY_PRIORITY_ADJUST:默认值:-1

范围:scrapy.downloadermiddlewares.retry.RetryMiddleware

调整相对于原始请求的重试请求优先级:

积极的优先调整意味着更高的优先。

否定优先级调整(默认)意味着优先级较低

 

ROBOTSTXT_OBEY:默认:False

范围:scrapy.downloadermiddlewares.robotstxt

如果启用,Scrapy将尊重robots.txt策略。 欲了解更多信息,请参阅RobotsTxtMiddleware。

 

SCHEDULER:默认:'scrapy.core.scheduler.Scheduler'

调度程序用于抓取。

 

SCHEDULER_DEBUG:Default: False

SPIDER_MIDDLEWARES:Default:{}

 

SPIDER_MIDDLEWARES_BASE

SPIDER_MODULES:Default:[]

 

URLLENGTH_LIMIT:Default:2083

USER_AGENT:Default:"Scrapy/VERSION (+http://scrapy.org)"

 

12.Sending e-mail

http://python.usyiyi.cn/translate/scrapy_14/index.html

scrapy的简单使用以及相关设置属性的介绍的更多相关文章

  1. 如果需要将UIView的4个角全部都为圆角,做法相当简单,只需设置其Layer的cornerRadius属性即可

    如果需要将UIView的4个角全部都为圆角,做法相当简单,只需设置其Layer的cornerRadius属性即可(项目需要使用QuartzCore框架).而若要指定某几个角(小于4)为圆角而别的不变时 ...

  2. C#反射技术的简单操作(读取和设置类的属性)

    public class A { public int Property1 { get; set; } } static void Main(){ A aa = new A(); Type type ...

  3. JSP指令用来设置整个JSP页面相关的属性

    JSP 指令 JSP指令用来设置整个JSP页面相关的属性,如网页的编码方式和脚本语言. 语法格式如下: <%@ directive attribute="value" %&g ...

  4. jquery简单使用(看教程:快全有实例)(固定样式:$().val()设置属性,$().click()设置方法)

    jquery简单使用(看教程:快全有实例)(固定样式:$().val()设置属性,$().click()设置方法) 一.总结 1.jquery不懂之处直接看教程,案例都有,有简单又快 2.jquery ...

  5. Scrapy 框架,爬虫文件相关

    Spiders 介绍 由一系列定义了一个网址或一组网址类如何被爬取的类组成 具体包括如何执行爬取任务并且如何从页面中提取结构化的数据. 简单来说就是帮助你爬取数据的地方 内部行为 #1.生成初始的Re ...

  6. zend studio 9.0.4 破解、汉化和字体颜色及快捷键相关设置

    转载:http://www.penglig.com/post-45.html 下载:http://www.geekso.com/component/zendstudio-downloads/ 破解:h ...

  7. CSS.01 -- 选择器及相关的属性文本、文字、字体、颜色、

    与html相比,Css支持更丰富的文档外观,Css可以为任何元素的文本和背景设置颜色:允许在任何元素外围设置边框:允许改变文本的大小,装饰(如下划线),间隔,甚至可以确定是否显示文本. 什么是CSS? ...

  8. 你所不知道的 CSS 阴影技巧与细节 滚动视差?CSS 不在话下 神奇的选择器 :focus-within 当角色转换为面试官之后 NPOI 教程 - 3.2 打印相关设置 前端XSS相关整理 委托入门案例

    你所不知道的 CSS 阴影技巧与细节   关于 CSS 阴影,之前已经有写过一篇,box-shadow 与 filter:drop-shadow 详解及奇技淫巧,介绍了一些关于 box-shadow  ...

  9. zend studio 破解、汉化和字体颜色及快捷键相关设置

    下载:http://www.geekso.com/component/zendstudio-downloads/ 破解:http://www.geekso.com/ZendStudio9-key/ 注 ...

随机推荐

  1. Spring的IoC模式

    1.依赖 依赖就是有联系,有地方使用到它就是有依赖它,一个系统不可能完全避免依赖.如果你的一个类或者模块在项目中没有用到它,恭喜你,可以从项目中剔除它或者排除它了,因为没有一个地方会依赖它.下面看一个 ...

  2. [动态规划]UVA10285 - Longest Run on a Snowboard

    Problem C Longest Run on a Snowboard Input: standard input Output: standard output Time Limit: 5 sec ...

  3. 用仿ActionScript的语法来编写html5——第五篇,Graphics绘图

    用仿ActionScript的语法来编写html5——第五篇,Graphics绘图 canvas本身就是一个Graphics,可以直接进行绘图在actionscript里面,每个Sprite都有一个G ...

  4. 安装SQL2012

    1. 优先安装软件 1. net framework3.5. 2. 在安装SQL SERVER 2012前需要3.5的支持.在WIN 2012系统可以在系统管理的添加角色和功能中安装,如下将[.NET ...

  5. Servlet中参数获取方法

    在web.xml里面可以定义两种参数: 一种是全局范围的参数, 一种是servlet内的参数. web.xml里定义参数的应用举例:在做分页功能时,可以在代码中直给定pageSize的值,这样,写死在 ...

  6. Python之验证码

    Python生成随机验证码,需要使用PIL模块. 安装: ? 1 pip3 install pillow 基本使用 1. 创建图片 ? 1 2 3 4 5 6 7 8 9 from PIL impor ...

  7. 本地连不上远程mysql数据库(2)

    Host is not allowed to connect to this MySQL server解决方法 今天在ubuntu上面装完MySQL,却发现在本地登录可以,但是远程登录却报错Host ...

  8. Linux Shell编程第4章——sed和awk

    目录 sed命令基本用法 sed命令实例 命令选项 文本定位 编辑命令 awk编程模型 awk编程实例 1.awk模式匹配 2.记录和域 3.关系和布尔运算符 4.表达式 5.系统变量 6.格式化输出 ...

  9. Java面向对象—继承

    概述: 1.多个类相同的属性和功能抽取成另一个类, 让具有特有功能的类继承这个类. 2.通过 extends 关键字可以实现类与类的继承 格式: class 子类名 extends 父类名 {} 特点 ...

  10. Kotlin学习记录3

    参考我的博客:http://www.isedwardtang.com/2017/09/04/kotlin-primer-3/