scrapy爬取网易新闻内容

最近在写毕业论文,是做个文本分类相关的题目。想抓取网易新闻里那些新闻内容作为分析的数据,于是就又照着scrapy的文档照做了一遍。。。

感觉主要就只是两个文件items.py和spiders文件夹下的爬取规则的文件,我这里爬取技术类文档的直接叫tech.py了

scrapy的入门教程已经写的很详细了,大家可以先看看。地址为http://scrapy-chs.readthedocs.org/zh_CN/0.24/intro/tutorial.html

下面是我做的情况

1.创建项目    运行命令

scrapy startproject news

2.定义item

修改了下news文件夹下的items.py内容,添加了article和desc字段分别表示文章地址和内容

import scrapy

class NewsItem(scrapy.Item):
    article = scrapy.Field()
    desc = scrapy.Field()

3.编写爬虫spider

在news/spiders目录下,新建了tech.py文件

#coding:utf-8
from scrapy.contrib.linkextractors import LinkExtractor
from scrapy.contrib.spiders import CrawlSpider,Rule
from news.items import NewsItem
class TechSpider(CrawlSpider):
   name = "tech"
   allowed_domains = ["tech.163.com"]
   start_urls = ["http://tech.163.com/"]
   rules = [Rule(LinkExtractor(allow=r"/16/03\d+/\d+/*"),‘parse_item‘)]

   def parse_item(self,response):
     sites = response.xpath(‘//div[@class="end-text"]/p‘)
     items = []
     content = []
     for site in sites:
       content.append(‘‘.join(site.xpath(‘text()‘).extract()))
     item = NewsItem()
     item[‘article‘] = response.url
     item[‘desc‘] = ‘‘.join(content)
     items.append(item)
     return items

  

4.爬取数据与保存

我在new文件夹同级目录下新建了个data文件夹,然后运行下面代码
scrapy crawl tech -o tech1603.json

 这样就完成爬取了网易16年3月的一些技术文章,存为一个json了。。。如果想直观的看的话可以通过http://www.bejson.com/查看抓取结果

5.然后想爬取下财经类文章

spiders文件夹下新建money.py

#coding:utf-8
from scrapy.contrib.linkextractors import LinkExtractor
from scrapy.contrib.spiders import CrawlSpider,Rule
from news.items import NewsItem
class MoneySpider(CrawlSpider):
   name = "money"
   allowed_domains = ["money.163.com"]
   start_urls = ["http://money.163.com/"]
   rules = [Rule(LinkExtractor(allow=r"/16/03\d+/\d+/*"),‘parse_item‘)]

   def parse_item(self,response):
     sites = response.xpath(‘//div[@class="end-text"]/p‘)
     items = []
     content = []
     for site in sites:
       content.append(‘‘.join(site.xpath(‘text()‘).extract()))
     item = NewsItem()
     item[‘article‘] = response.url
     item[‘desc‘] = ‘‘.join(content)
     items.append(item)
     return items

  

到data文件夹下运行

scrapy crawl money -o money1603.json

这样财经类三月的一些文章也下下来了。。。  

写在后面的话

  最后爬取的数据有爬了5,6类吧,不过貌似平均就100篇左右,可能是url规则制定的问题,数据太少也没能用上,不过就当是学了下爬数据也算get个新技能吧。

tip:如果要做文本分类的话,搜狗有个文本分类的语料库不错,我最后要用的也是那个http://www.sogou.com/labs/dl/c.html,我下的精简版,各类都是1990篇文章,只是做实验就差不多够了

时间: 2024-10-14 18:40:57

scrapy爬取网易新闻内容的相关文章

爬取网易新闻排行榜

#网络爬虫之最基本的爬虫:爬取[网易新闻排行榜](http://news.163.com/rank/) **一些说明:** * 使用urllib2或requests包来爬取页面. * 使用正则表达式分析一级页面,使用Xpath来分析二级页面. * 将得到的标题和链接,保存为本地文件. import os import sys import requests import re from lxml import etree def StringListSave(save_path, filenam

Python爬虫实战教程:爬取网易新闻;爬虫精选 高手技巧

前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. stars声明很多小伙伴学习Python过程中会遇到各种烦恼问题解决不了.为此小编建了个群 624440745. 不懂的问题有老司机解决里面还有最新Python教程项目可拿,,一起相互监督共同进步! 此文属于入门级级别的爬虫,老司机们就不用看了. 本次主要是爬取网易新闻,包括新闻标题.作者.来源.发布时间.新闻正文. 首先我们打开163的网站,我们随意选择一个分类,这里我选

第三百三十四节,web爬虫讲解2—Scrapy框架爬虫—Scrapy爬取百度新闻,爬取Ajax动态生成的信息

第三百三十四节,web爬虫讲解2-Scrapy框架爬虫-Scrapy爬取百度新闻,爬取Ajax动态生成的信息 crapy爬取百度新闻,爬取Ajax动态生成的信息,抓取百度新闻首页的新闻标题和rul地址 有多网站,当你浏览器访问时看到的信息,在html源文件里却找不到,由得信息还是滚动条滚动到对应的位置后才显示信息,那么这种一般都是 js 的 Ajax 动态请求生成的信息 我们以百度新闻为列: 1.分析网站 首先我们浏览器打开百度新闻,在网页中间部分找一条新闻信息 然后查看源码,看看在源码里是否有

利用scrapy抓取网易新闻并将其存储在mongoDB

好久没有写爬虫了,写一个scrapy的小爬爬来抓取网易新闻,代码原型是github上的一个爬虫,近期也看了一点mongoDB.顺便小用一下.体验一下NoSQL是什么感觉.言归正传啊.scrapy爬虫主要有几个文件须要改动.这个爬虫须要你装一下mongodb数据库和pymongo,进入数据库之后.利用find语句就能够查看数据库中的内容,抓取的内容例如以下所看到的: { "_id" : ObjectId("5577ae44745d785e65fa8686"), &qu

web爬虫讲解—Scrapy框架爬虫—Scrapy爬取百度新闻,爬取Ajax动态生成的信息

crapy爬取百度新闻,爬取Ajax动态生成的信息,抓取百度新闻首页的新闻rul地址 有多网站,当你浏览器访问时看到的信息,在html源文件里却找不到,由得信息还是滚动条滚动到对应的位置后才显示信息,那么这种一般都是 js 的 Ajax 动态请求生成的信息 我们以百度新闻为列: 1.分析网站 首先我们浏览器打开百度新闻,在网页中间部分找一条新闻信息 然后查看源码,看看在源码里是否有这条新闻,可以看到源文件里没有这条信息,这种情况爬虫是无法爬取到信息的 那么我们就需要抓包分析了,启动抓包软件和抓包

教你分分钟学会用python爬虫框架Scrapy爬取你想要的内容

教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神 python爬虫学习课程,下载地址:https://pan.baidu.com/s/1v6ik6YKhmqrqTCICmuceug 课程代码原件:课程视频: 原文地址:http://blog.51cto.com/aino007/2123341

python scrapy爬取皇冠体育源码下载网站数据二(scrapy使用详细介绍)

1.scrapy工程创建皇冠体育源码下载论坛:haozbbs.com Q1446595067 在命令行输入如下命令,创建一个使用scrapy框架的工程 scrapy startproject scrapyDemo 1 命令创建好后的工程结构如下图scrapy工程结构 输入如下命令,在工程目录中创建示例代码 PS C:\ProjectPycharm> cd scrapyDemoPS C:\ProjectPycharm\scrapyDemo> scrapy genspider example ex

scrapy爬取斗图表情

用scrapy爬取斗图表情,其实呀,我是运用别人的博客写的,里面的东西改了改就好了,推存链接" http://www.cnblogs.com/jiaoyu121/p/6992587.html " 首先建立项目:scrapy startproject doutu 在scrapy框架里先写自己要爬取的是什么,在item里面写. import scrapyclass DoutuItem(scrapy.Item): # define the fields for your item here

Scrapy爬取慕课网(imooc)所有课程数据并存入MySQL数据库

爬取目标:使用scrapy爬取所有课程数据,分别为 1.课程名 2.课程简介 3.课程等级 4.学习人数 并存入MySQL数据库  (目标网址  http://www.imooc.com/course/list) 一.导出数据文件到本地 1.新建imooc项目 1 scrapy startproject imooc 2.修改 items.py,添加项目item 1 from scrapy import Item,Field 2 class ImoocItem(Item): 3 Course_na