首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >爬虫笔记(一)

爬虫笔记(一)

作者头像
TalkPython
发布2019-05-24 16:41:49
6050
发布2019-05-24 16:41:49
举报
文章被收录于专栏:TalkPythonTalkPython

点击蓝字关注△ 回复“1024”领取福利大礼包

写爬虫,写多之后,你会觉得,自己写各种功能太麻烦了。还是的整个框架方便。因此,从写爬虫脚本开始,逐渐会用到一些爬虫框架。爬虫框架不仅功能丰富、而且效率、扩展都非常的方便。接下来会分享一些Scrapy爬虫框架的学习笔记。

一、安装
$ pip install scrapy
二、创建爬虫工程
$ scrapy startproject wikiSpider
三、爬虫工程目录结构

wikiSpider项目文件夹的目录结构如下所示:

scrapy.cfg
- wikiSpider
    - __init__.py
  - items.py  
  - pipelines.py
  - settings.py
  - spiders
       - __init__.py
四、定义需要爬取数据字段

我们准备爬取页面的标题在items.py文件中,定义一个Article类,然后编写如下代码:

from scrapy import Item,Field
class Article(Item):
    title = Field()
五、创建一个爬虫文件

为了创建一个爬虫,我们需要在wikiSpider/wikiSpider/spiders/文件夹里增加一个 articleSpider.py文件。 在新建的articleSpider.py文件里面,写如下代码:

from scrapy.selector import Selector
from scrapy import Spider
from wikiSpider.items import Article

class ArticleSpider(Spider):
    name = 'article'
    allowd_domains = ["en.wikipedia.org"]
    start_urls = ['http://en.wikipedia.org/wiki/Main_Page','http://en.wikipedia.org/wiki/Python_%28programming_language%29']

    def parse(self,response):
        item = Article()
        title = response.xpath('//h1/text()')[0].extract()
        print("Title is : "+title)
        item['title'] = title
        return item

这个类的名称(ArticleSpider )与爬虫文件的名称(wikiSpider)是不同的, 这个类只是 在 wikiSpider 目录里的一员,仅仅用于维基词条页面的采集。

运行爬虫

你可以在wikiSpider主目录中用如下命令运行 ArticleSpider :

$ scrapy crawl article

这行命令会用ArticleSpider类中的定义的name调用爬虫。这个爬虫先进入start_urls里面的两个页面,收集信息,然后停止。 Scrapy支持用不同的输出格 式来保存这些信息,比如CSV、JSON 或XML文件格式,对应命令如下所示:

$ scrapy crawl article -o articles.csv -t csv 
$ scrapy crawl article -o articles.json -t json 
$ scrapy crawl article -o articles.xml -t xml

当然,你也可以自定义 Item 对象,把结果写入你需要的一个文件或数据库中,只要在爬虫的parse部分增加相应的代码即可。如果觉得内容还不错,分享给更多朋友,一起提升编程技能。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 TalkPython 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、安装
  • 二、创建爬虫工程
  • 三、爬虫工程目录结构
  • 四、定义需要爬取数据字段
  • 五、创建一个爬虫文件
  • 运行爬虫
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档