文档章节

Scrapy攻略

s
 sidiansh
发布于 2016/04/09 17:03
字数 265
阅读 26
收藏 0

#取得李毅吧下所有精品贴名称,保存 json文件到项目目录

1.创建项目:

$ scrapy startproject tutorial        # tutorial :project_name

2.定义Item:

from scrapy.item import Item, Field
class TiebaItem(Item):
    # define the fields for your item here like:
    name = Field()
    description = Field()
    url = Field()

3.新建tieba_splder文件: 在Splder文件夹下新建

from scrapy.spider import Spider
from scrapy.selector import Selector
from tutorial.items import DmozItem
from scrapy.http import Request
class tiebaSpider(Spider):
    name = "tieba"
    # allowed_domains = ["dmoz.org"]
    # download_delay = 2        #下载延迟
    start_urls = [
        "http://tieba.baidu.com/f?kw=%E6%9D%8E%E6%AF%85&ie=utf-8&tab=good&cid=0&pn=0"
    ]
    def parse(self, response):
        sel = Selector(response)
        # sites = sel.xpath('//ul[@class="directory-url"]/li')
        sites=sel.xpath('//div/a[@class="j_th_tit "]')
        for site in sites:
            item = DmozItem()
            item['description'] = site.xpath('text()').extract()
            yield item
        #下一页
        nextLink = sel.xpath('//div[@class="pagination-default clearfix"]/a[@class="next pagination-item "]/@href').extract()
        if nextLink:        #判断下一页链接是否存在
            nextLink = nextLink[0]        #取出链接
            yield Request(nextLink, callback=self.parse)

4.设置 Pipelines,保存为"scraped_data_utf8.json"文件,

import json
import codecs
class FilterWordsPipeline(object):
    def __init__(self):
        # self.file = open('items.jl', 'wb')
        self.file = codecs.open(
            'scraped_data_utf8.json', 'w', encoding='utf-8')
    def process_item(self, item, spider):
        line = json.dumps(dict(item), ensure_ascii=False) + "\n"
        self.file.write(line)
        return item
    def spider_closed(self, spider):
        self.file.close()

5.设置 settings.py,

ITEM_PIPELINES = {
   'tutorial.pipelines.FilterWordsPipeline': 500,    #对应的 Pipelines 中的class
}


© 著作权归作者所有

上一篇: Scrapy_命令行工具
下一篇: Ubuntu安装PyCharm
s
粉丝 1
博文 37
码字总数 17462
作品 0
济南
私信 提问
python安装scrapy/Twisted遇见的坑

入门python,一直听闻有一款非常出门的爬虫框架scrapy,非常想尝试一下,于是通过pip install安装,无奈各种报错(的确是各种报错!!),因为scrapy主要依赖的几个库并不支持python3.x。最后...

BekeyChao
2017/11/07
520
0
python爬虫----(5. scrapy框架,综合应用及其他)

在分析和处理选择内容时,还需注意页面的JS可能会修改DOM树结构。 (一)GitHub的使用 由于之前使用Win,没使用过shell的。目前只是了解。以后再补充。找到几个不错的教程 GitHub超详细图文攻...

明天以后
2014/08/21
712
0
scrapy 报错, 怎么查?

2015-02-27 15:50:57+0800 [scrapy] INFO: Scrapy 0.12.0.2546 started (bot: robot) 2015-02-27 15:50:58+0800 [scrapy] DEBUG: Enabled extensions: TelnetConsole, SpiderContext, WebSer......

帖子列表
2015/03/01
1K
3
网站爬虫框架库 - Scrapy-Python

scrapy Scrapy:Python的爬虫框架 实例Demo 抓取:汽车之家、瓜子、链家 等数据信息 版本+环境库 Python2.7 + Scrapy1.12 初窥Scrapy Scrapy是一个为了爬取网站数据,提取结构性数据而编写的...

蓝黑色时代
2017/10/18
4.8K
3
Scrapy爬虫(8)scrapy-splash的入门

scrapy-splash的介绍   在前面的博客中,我们已经见识到了Scrapy的强大之处。但是,Scrapy也有其不足之处,即Scrapy没有JS engine, 因此它无法爬取JavaScript生成的动态网页,只能爬取静态...

jclian91
2018/03/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Python 周刊第 418 期

新闻 PyCon US 2020 开始接受财务赞助! https://pycon.blogspot.com/2019/10/financial-aid-launches-for-pycon-us-2020.html2020年 Python 美国开发者大会,tips: 中国也有,可以赞助国内的...

iCodeBugs
3分钟前
0
0
ThreadLocal源码阅读

首先,从set方法入手, // ThreadLocalpublic void set(T value) { Thread t = Thread.currentThread(); ThreadLocalMap map = getMap(t);//这里可以看出,从Threa......

小海bug
12分钟前
1
0
成长之路 万事知行合一

思想决定行为,行为决定习惯,习惯决定性格,性格决定命运。 很多道理,不管是前辈给你指点说的也好,还是你自己看一些书籍学到的也好,如果不能够做到,就连那些不知道这个道理的人都不如。...

T型人才追梦者
15分钟前
1
0
uml图六种箭头的含义

在看一些技术博客的时候,经常会见到博客里画上很多uml图。因为经常会被这几种表达关系的箭头搞混,这里我就把常见的6种箭头表达的含义理一下。 泛化 概念:泛化是一种一般与特殊、一般与具体...

1只特立独行的猪
22分钟前
1
0
【在 Nervos CKB 上做开发】Nervos CKB 脚本编程简介[3]:自定义代币

原文作者:Xuejie 原文链接:https://xuejie.space/2019_09_06_introduction_to_ckb_script_programming_udt/ Nervos CKB 脚本编程简介[3]:自定义代币 CKB 的 Cell 模型和 VM 支持许多新的用...

NervosCommunity
56分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部