前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python crawlspider详解

python crawlspider详解

作者头像
用户5760343
发布2022-01-10 08:18:38
3190
发布2022-01-10 08:18:38
举报
文章被收录于专栏:sktj

scrapy genspider -t crawl spider名称 www.xxxx.com LinkExtractors: allow:必须要匹配这个正则表达式的URL才会被提取,如果没有给出,或为空,匹配所有。(str or list) deny:allow的反面,如果没有给出或空,不排除所有。优先级高于allow。(str or list) allow_domains :(str or list) deny_domains :(str or list) deny_extensions:(list):提取链接时,忽略的扩展名列表。 restrict_xpaths :从哪些XPATH提取 tags:(str or list):默认为('a','area') attrs :(list):默认为('href') unique :boolean 重复过滤 Rule: callback:从link_extractor中每获取到链接时,参数所指定的值作为回调函数,该回调函数接受一个response作为其第一个参数。 注意:当编写爬虫规则时,避免使用parse作为回调函数。由于CrawlSpider使用parse方法来实现其逻辑,如果覆盖了 parse方法,crawl spider将会运行失败。 follow:是否跟进。如果callback为None,follow 默认设置为True ,否则默认为False。 process_links:指定该spider中哪个的函数将会被调用,从link_extractor中获取到链接列表时将会调用该函数。该方法主要用来过滤。 process_request:指定该spider中哪个的函数将会被调用, 该规则提取到每个request时都会调用该函数。 (用来过滤request)

自己迭代

!/usr/bin/python

-- coding:utf-8 --

from scrapy.contrib.spiders import CrawlSpider,Rule

from scrapy.spider import Spider from scrapy.http import Request from scrapy.selector import Selector from CSDNBlog.items import CsdnblogItem

class CSDNBlogSpider(Spider): """爬虫CSDNBlogSpider"""

代码语言:javascript
复制
name = "CSDNBlog"

#减慢爬取速度 为1s
download_delay = 1
allowed_domains = ["blog.csdn.net"]
start_urls = [

    #第一篇文章地址
    "http://blog.csdn.net/u012150179/article/details/11749017"
]

def parse(self, response):
    sel = Selector(response)

    #items = []
    #获得文章url和标题
    item = CsdnblogItem()

    article_url = str(response.url)
    article_name = sel.xpath('//div[@id="article_details"]/div/h1/span/a/text()').extract()

    item['article_name'] = [n.encode('utf-8') for n in article_name]
    item['article_url'] = article_url.encode('utf-8')

    yield item

    #获得下一篇文章的url
    urls = sel.xpath('//li[@class="next_article"]/a/@href').extract()
    for url in urls:
        print url
        url = "http://blog.csdn.net" + url
        print url
        yield Request(url, callback=self.parse)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.05.16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 自己迭代
  • !/usr/bin/python
  • -- coding:utf-8 --
  • from scrapy.contrib.spiders import CrawlSpider,Rule
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档