#Python爬虫#--Scrapy之Link Extractors

user

雨橙

中国.四川.成都

世界之上、唯有远见、惟爱不变。


Link Extractors
Link Extractors 是那些目的仅仅是从网页(scrapy.http.Response 对象)中抽取最终将会被follow链接的对象。

完整代码如下:

# -*- coding: utf-8 -*-
import scrapy
from scrapy.linkextractor import LinkExtractor
from .. items import LinkdemoItem

class LinktestSpider(scrapy.Spider):
    name = 'linktest'
    allowed_domains = ['www.gaosiedu.com']
    start_urls = ['http://www.gaosiedu.com/gsschool//']


    def parse(self, response):
        link = LinkExtractor(restrict_xpaths="//ul[@class='cont_xiaoqu']//li")
        links = link.extract_links(response)
        for link_line in links:
            print(link_line.url,link_line.text)
            item = LinkdemoItem()
            item["url"] = link_line.url
            item["text"] = link_line.text
            yield item

LinkExtractor参数详解:
allow:接收一个正则表达式或一个正则表达式列表,提取绝对url于正则表达式匹配的链接,如果该参数为空,默认全部提取。
deny:接收一个正则表达式或一个正则表达式列表,与allow相反,排除绝对url于正则表达式匹配的链接,换句话说,就是凡是跟正则表达式能匹配上的全部不提取。
allow_domains:接收一个域名或一个域名列表,提取到指定域的链接。
deny_domains:和allow_doains相反,拒绝一个域名或一个域名列表,提取除被deny掉的所有匹配url。
restrict_xpaths:我们在最开始做那个那个例子,接收一个xpath表达式或一个xpath表达式列表,提取xpath表达式选中区域下的链接。
restrict_css:这参数和restrict_xpaths参数经常能用到,所以同学必须掌握,个人更喜欢xpath。
tags:接收一个标签(字符串)或一个标签列表,提取指定标签内的链接,默认为tags=('a','area')
attrs:接收一个属性(字符串)或者一个属性列表,提取指定的属性内的链接,默认为attrs=('href')
posted at