前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python爬虫----(5. scrapy框架,综合应用及其他)

python爬虫----(5. scrapy框架,综合应用及其他)

作者头像
lpe234
发布2020-07-27 17:04:02
4020
发布2020-07-27 17:04:02
举报
文章被收录于专栏:若是烟花

在分析和处理选择内容时,还需注意页面的JS可能会修改DOM树结构。

(一)GitHub的使用

由于之前使用Win,没使用过shell的。目前只是了解。以后再补充。找到几个不错的教程

GitHub超详细图文攻略 http://blog.csdn.net/vipzjyno1/article/details/22098621

Github修改提交 http://www.360doc.com/content/12/0602/16/2660674_215429880.shtml

以后再补充!!!!!

(二)FireFox的FireBug的使用

之前一直使用FireFox的F12默认调试工具,感觉就挺爽的了。刚才换了FireBug一试,那简直就更爽了。

Tools-->Web Developer-->Get More Tools 然后,一般第一个就是 FireBug 安装即可。之后按F12,就默认启用了。

功能简直强大到没朋友。可以直接获取元素的xpath,css path。还可修改cookies.....

(三)豆瓣电影抓取 http://www.ituring.com.cn/article/114408

(1)items.py

代码语言:javascript
复制
# -*- coding: utf-8 -*-

from scrapy import Item, Field


class MovieItem(Item):
    name = Field()
    year = Field()
    score = Field()
    director = Field()
    classification = Field()
    actor = Field()

(2)spiders/movie_spider.py

代码语言:javascript
复制
# -*- coding: utf-8 -*-
from scrapy import Selector
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from douban.items import MovieItem


class MovieSpider(CrawlSpider):
    name = "movie"
    allowed_domains = ["douban.com"]
    start_urls = (
        'http://movie.douban.com/top250',
    )
    # rules可以自定义urls的抓取
    rules = (
        # 这个Rule只是在start_urls的基础上查找urls,并不是数据抓取的具体页面
        Rule(SgmlLinkExtractor(allow=(r'http://movie.douban.com/top250\?start=\d+.*'))),
        # 这个Rule是具体数据抓取的页面地址,callback是回调函数,负责处理返回的response数据
        Rule(SgmlLinkExtractor(allow=(r'http://movie.douban.com/subject/\d+')), callback='parse_item'),
    )

    def parse_item(self, response):
        sel = Selector(response)
        item = MovieItem()
        # 此处选择还可使用 css(), re() 等。还可利用FireBug协助选取
        item['name'] = sel.xpath('//span[@property="v:itemreviewed"]/text()').extract()
        item['year'] = sel.xpath('//span[@class="year"]/text()').extract()
        item['score'] = sel.xpath('//strong[@class="ll rating_num"]/text()').extract()
        item['director'] = sel.xpath('//a[@rel="v:directedBy"]/text()').extract()
        item['classification'] = sel.xpath('//span[@property="v:genre"]/text()').extract()
        item['actor'] = sel.xpath('//a[@rel="v:starring"]/text()').extract()
        return item

(3)Pipeline.py

代码语言:javascript
复制
# 将抓取的数据保存到数据库中,这里有两个版本
#一个是保存到MySQL数据库中
#另一个是保存到非关系型数据库MongoDB中
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
关系型数据库
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档