我是靠谱客的博主 欢呼钻石,最近开发中收集的这篇文章主要介绍Python爬虫框架Scrapy 学习笔记 2 ----- 爬取Mininova网站种子文件信息,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1. 任务描述

目标网站:http://www.mininova.org/yesterday/

目标网站截图:


wKioL1SiFROTeGudAAK_QXeOQrw434.jpg

-------------------------------------

可以看到种子文件的列表,这些链接的url可以用正则表达式表示为: /tor/d+

随便点一个进去,进入资源详情页:http://www.mininova.org/tor/13278086


详情页截图


wKiom1SiFWnyJKHKAAT3acW5wiY414.jpg


截图中的:资源名称, 资源大小,和资源描述就是我们要抓取的信息。


2. 定义scrapy item.

mininova.py

import  scrapy

class TorrentItem(scrapy.Item):
    url = scrapy.Field()
    name = scrapy.Field()
    description = scrapy.Field()
    size = scrapy.Field()

3. 查看网页源文件,确定我们要抓取的内容的XPath表达式。对XML Path Language不熟悉的话可以参考:http://www.w3.org/TR/xpath/

ItemXPath
name//hi/text()
size//div[@id='specifications']/p[2]/text()[2]
descripthin//div[@id='description']

4. 最终的代码为:

mininova.py

import scrapy
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors import LinkExtractor

class TorrentItem(scrapy.Item):
    url = scrapy.Field()
    name = scrapy.Field()
    description = scrapy.Field()
    size = scrapy.Field()
    
class MininovaSpider(CrawlSpider):
    name = 'mininova'
    allowed_domains = ['mininova.org']
    start_urls = ['http://www.mininova.org/yesterday']
    rules = [Rule(LinkExtractor(allow=['/tor/d+']), 'parse_torrent')]   
    
    def parse_torrent(self, response):
        torrent = TorrentItem()
        torrent['url'] = response.url
        torrent['name'] = response.xpath("//h1/text()").extract()
        torrent['description'] = response.xpath("//div[@id='description']").extract()
        torrent['size'] = response.xpath("//div[@id='specifications']/p[2]/text()[2]").extract()
        return torrent


5. 运行代码

将mininova.py复制到C:

打开cmd,输入命令: scrapy runspider --output=spider_out.json mininova.py

文件的后缀名很重要,scrapy会根据后缀名确定输出格式

wKiom1Sic8KRSeTgAAWqQmyagD4496.jpg

6. 查看输出

wKioL1SidPeDJaA9AASuaCGAUmc859.jpg



转载于:https://blog.51cto.com/dingbo/1597695

最后

以上就是欢呼钻石为你收集整理的Python爬虫框架Scrapy 学习笔记 2 ----- 爬取Mininova网站种子文件信息的全部内容,希望文章能够帮你解决Python爬虫框架Scrapy 学习笔记 2 ----- 爬取Mininova网站种子文件信息所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(73)

评论列表共有 0 条评论

立即
投稿
返回
顶部