windows下使用python的scrapy爬虫框架,爬取个人博客文章内容信息
│ scrapy.cfg
│
└─vpoetblog
│ items.py
│ pipelines.py
│ settings.py
│ __init__.py
│
└─spiders
__init__.py
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
这里我们要新建一些文件,最终的目录结构如下:
│ scrapy.cfg
│ data.txt //用于保存抓取到的数据
└─doubanmoive
│ items.py //用于定义抓取的item
│ pipelines.py //用于将抓取的数据进行保存
│ settings.py
│ __init__.py
│
└─spiders
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
blog_spider.py //主爬虫函数 用于定义抓取规则等
__init__.py
- 1
- 2
- # -*- coding: cp936 -*-
- from scrapy.item import Item, Field
- class VpoetblogItem(Item):
- # define the fields for your item here like:
- # name = Field()
- article_name = Field() #文章名字
- public_time = Field() #发表时间
- read_num = Field() #阅读数量
- # -*- coding: utf-8 -*-
- import sys
- reload(sys)
- sys.setdefaultencoding('utf-8')
- from scrapy.exceptions import DropItem
- from scrapy.conf import settings
- from scrapy import log
- class Pipeline(object):
- def __init__(self):
- print 'abc'
- def process_item(self, item, spider):
- #Remove invalid data
- #valid = True
- #for data in item:
- #if not data:
- #valid = False
- #raise DropItem("Missing %s of blogpost from %s" %(data, item['url']))
- #print 'crawl no data.....\n'
- #if valid:
- #Insert data into txt
- input = open('data.txt', 'a')
- input.write('article_name:'+item['article_name'][0]+' ');
- input.write('public_time:'+item['public_time'][0]+' ');
- input.write('read_num:'+item['read_num'][0]+' ');
- input.close()
- return item
- # Scrapy settings for vpoetblog project
- #
- # For simplicity, this file contains only the most important settings by
- # default. All the other settings are documented here:
- #
- # http://doc.scrapy.org/topics/settings.html
- #
- BOT_NAME = 'vpoetblog'
- BOT_VERSION = '1.0'
- SPIDER_MODULES = ['vpoetblog.spiders']
- NEWSPIDER_MODULE = 'vpoetblog.spiders'
- ITEM_PIPELINES={
- 'vpoetblog.pipelines.Pipeline':300
- }
- DOWNLOAD_DELAY = 2
- RANDOMIZE_DOWNLOAD_DELAY = True
- USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.54 Safari/536.5'
- COOKIES_ENABLED = True
blog_spider.py内容如下:
- # -*- coding: utf-8 -*-
- from scrapy.selector import HtmlXPathSelector
- from scrapy.contrib.spiders import CrawlSpider,Rule
- from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
- from vpoetblog.items import VpoetblogItem
- class MoiveSpider(CrawlSpider):
- name="vpoetblog"
- allowed_domains=["blog.csdn.net"]
- start_urls=["http://blog.csdn.net/u013018721/article/list/1"]
- rules=[
- Rule(SgmlLinkExtractor(allow=(r'http://blog.csdn.net/u013018721/article/list/\d+'))),
- Rule(SgmlLinkExtractor(allow=(r'http://blog.csdn.net/u013018721/article/details/\d+')),callback="parse_item"),
- ]
- def parse_item(self,response):
- sel=HtmlXPathSelector(response)
- item=VpoetblogItem()
- item['article_name']=sel.select('//*[@class="link_title"]/a/text()').extract()
- item['public_time']=sel.select('//*[@class="link_postdate"]/text()').extract()
- item['read_num']=sel.select('//*[@class="link_view"]/text()').extract()
- return item
windows下使用python的scrapy爬虫框架,爬取个人博客文章内容信息的更多相关文章
- 手把手教大家如何用scrapy爬虫框架爬取王者荣耀官网英雄资料
之前被两个关系很好的朋友拉入了王者荣耀的大坑,奈何技术太差,就想着做一个英雄的随查手册,这样就可以边打边查了.菜归菜,至少得说明咱打王者的态度是没得说的,对吧?大神不喜勿喷!!!感谢!!废话不多说,开 ...
- Python爬取CSDN博客文章
0 url :http://blog.csdn.net/youyou1543724847/article/details/52818339Redis一点基础的东西目录 1.基础底层数据结构 2.win ...
- scrapy爬虫框架爬取招聘网站
目录结构 BossFace.py文件中代码: # -*- coding: utf-8 -*-import scrapyfrom ..items import BossfaceItemimport js ...
- python 爬虫 爬取序列博客文章列表
python中写个爬虫真是太简单了 import urllib.request from pyquery import PyQuery as PQ # 根据URL获取内容并解码为UTF-8 def g ...
- Python之Scrapy爬虫框架安装及简单使用
题记:早已听闻python爬虫框架的大名.近些天学习了下其中的Scrapy爬虫框架,将自己理解的跟大家分享.有表述不当之处,望大神们斧正. 一.初窥Scrapy Scrapy是一个为了爬取网站数据,提 ...
- 【python】Scrapy爬虫框架入门
说明: 本文主要学习Scrapy框架入门,介绍如何使用Scrapy框架爬取页面信息. 项目案例:爬取腾讯招聘页面 https://hr.tencent.com/position.php?&st ...
- 【网络爬虫】【python】网络爬虫(五):scrapy爬虫初探——爬取网页及选择器
在上一篇文章的末尾,我们创建了一个scrapy框架的爬虫项目test,现在来运行下一个简单的爬虫,看看scrapy爬取的过程是怎样的. 一.爬虫类编写(spider.py) from scrapy.s ...
- 【Python】【爬虫】爬取酷狗TOP500
好啦好啦,那我们来拉开我们的爬虫之旅吧~~~ 这一只小爬虫是爬取酷狗TOP500的,使用的爬取手法简单粗暴,目的是帮大家初步窥探爬虫长啥样,后期会慢慢变得健壮起来的. 环境配置 在此之前需要下载一个谷 ...
- Webmagic 爬虫框架 爬取马蜂窝、携程旅游、汽车之家游记信息
WebMagic学习 遇到的问题 Log4j错误 解决:在src目录下添加配置文件 log4j.properties log4j.rootLogger=INFO, stdout, file log4j ...
随机推荐
- Hadoop集群完全分布式坏境搭建
前言 上一篇我们讲解了Hadoop单节点的安装,并且已经通过VMware安装了一台CentOS 6.8的Linux系统,咱们本篇的目标就是要配置一个真正的完全分布式的Hadoop集群,闲言少叙,进入本 ...
- 使用JavaScript修改浏览器URL地址栏的实现代码
现在的浏览器里,有一个十分有趣的功能,你可以在不刷新页面的情况下修改浏览器URL;在浏览过程中.你可以将浏览历史储存起来,当你在浏览器点击后退按钮的时候,你可以冲浏览历史上获得回退的信息,这听起来并不 ...
- Mybatis怎么在mapper中用多个参数
原文地址:https://github.com/mybatis/mybatis-3/wiki/FAQ How do I use multiple parameters in a mapper? Jav ...
- MySQL中特有的函数CONV函数
CONV函数:用于对数字进行转换,比如将十进制的数字转化成二进制,参数格式convert(N,frombse,tobase) 将数字N从frombase进制转化成tobase进制,并且以字符串的格式返 ...
- (17)ClippingNode的使用
概述 ClippingNode(裁剪节点)可以用来对节点进行裁剪,可以根据一个模板切割图片的节点,生成任何形状的节点显示. ClippingNode是Node的子类,可以像普通节点一样放入Layer, ...
- wkhtmtopdf--高分辨率HTML转PDF(三)
代码篇 浏览了很多实例,总找不到既能把HTML保存为PDF,同时实现流抛出的,所以自己琢磨了许久,终于实现了这样两个需求的结合体,下面来贡献一下吧~~ 下面我们来选择一个网页打印下,保存为PDF,而且 ...
- uwsgi手动安装时报错ValueError: invalid literal for int() with base 10: '32_1'
安装uwsgi,安装步骤如下 wget https://projects.unbit.it/downloads/uwsgi-latest.tar.gz tar zxvf uwsgi-latest.ta ...
- nmon监控Linux服务器系统资源
本文转自:http://www.cnblogs.com/hyzhou/archive/2011/12/29/2305860.html 在实际的测试过程中,Loadrunner监控Linux系统资源不太 ...
- deepin中crossover或playonlinux装完office后word无法输入中文的问题
原因:office安装是自带了一个微软输入法 解决:装offce时进行自定义安装,在office共享功能里,把输入法去掉. 参考: https://jingyan.baidu.com/article/ ...
- 反射_IsDefined判断方法上有自定义的标签
在.NET 4.0(当然也包括4.0以前的版本)下,用反射判断某个方法是否运用了自定义Attribute时,可以通过调用MethodInfo的IsDefined()方法进行确认.当然,IsDefine ...