博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
爬取人力资源社保局咨询问题
阅读量:6617 次
发布时间:2019-06-25

本文共 2114 字,大约阅读时间需要 7 分钟。

创建项目

scrapy startproject shebao

items.py

1 import scrapy 2  3  4 class ShebaoItem(scrapy.Item): 5     # define the fields for your item here like: 6     # name = scrapy.Field() 7     title = scrapy.Field() 8     content = scrapy.Field() 9     url = scrapy.Field()10     number = scrapy.Field()

创建CrawSpider,使用模版crawl

scrapy genspider -t crawl SB www.bjrbj.gov.cn

 

SB.py

1 import scrapy 2 from scrapy.linkextractors import LinkExtractor 3 from scrapy.spiders import CrawlSpider, Rule 4 from shebao.items import ShebaoItem 5  6 class SbSpider(CrawlSpider): 7     name = 'SB' 8     allowed_domains = ['www.bjrbj.gov.cn'] 9     start_urls = ['http://www.bjrbj.gov.cn/mzhd/list_more.htm?stid=-1&ps=10&ishot=0&pn=1&ps=10']10 11     rules = (12         Rule(LinkExtractor(allow=r'&pn=\d+'), follow=True),13         Rule(LinkExtractor(allow=r'/mzhd/detail_\d+.htm'), callback = 'parse_item'),14         #Rule(LinkExtractor(allow=r'Items/'), callback='parse_item', follow=True),15     )16 17     def parse_item(self, response):18 19         item = ShebaoItem()20         item['title'] = response.xpath('//div[@class="xx_neirong"]/h1/text()').extract()[0]21         # 编号22         item['number'] = response.xpath('//p[@class="jz_p1"]/text()').extract()[0]23 24         item['content'] = response.xpath('//p[@class="jz_p2"]/text()').extract()[0]25         # 链接26         item['url'] = response.url27 28         yield item

 

pipelines.py

1 import json 2  3 class ShebaoPipeline(object): 4  5  6     def __init__(self): 7         self.filename = open("shebao.json", "w") 8  9     def process_item(self, item, spider):10         text = json.dumps(dict(item), ensure_ascii = False) + ",\n"11         self.filename.write(text)12         return item13 14     def close_spider(self, spider):15         self.filename.close()
settings.py
1 BOT_NAME = 'shebao' 2  3 SPIDER_MODULES = ['shebao.spiders'] 4 NEWSPIDER_MODULE = 'shebao.spiders' 5  6  7 ITEM_PIPELINES = { 8     'shebao.pipelines.ShebaoPipeline': 300, 9 }10 11 LOG_FILE = "dg.log"12 LOG_LEVEL = "DEBUG"

 

 

执行

scrapy crawl SB

 

 

转载于:https://www.cnblogs.com/wanglinjie/p/9231519.html

你可能感兴趣的文章
PostgreSQL 空间切割(st_split)功能扩展 - 空间对象网格化
查看>>
Intercom的持续部署实践:一天部署100次,1次10分钟
查看>>
SpringBoot权限控制
查看>>
阿里云中间件技术 促进互联网高速发展
查看>>
智能时代悄然到来 物联网称王将引爆传感器产业
查看>>
物理隔离计算机被USB蜜蜂刺破 数据通过无线信号泄露
查看>>
利用一点机器学习来加速你的网站
查看>>
中国域名现状:应用水平较低,安全仍存隐患
查看>>
Java中HashMap的原理分析
查看>>
React Native入门项目与解析
查看>>
云计算:大势所趋 你准备好了么?
查看>>
数据资产的运营商--天市大数据交易平台
查看>>
中小企业如何成功转型跨境电商
查看>>
java中文乱码解决之道(二)—–字符编码详解:基础知识 + ASCII + GB**
查看>>
《ANTLR 4权威指南》——2.5 语法分析树监听器和访问器
查看>>
02_JNI中Java代码调用C代码,Android中使用log库打印日志,javah命令的使用,Android.mk文件的编写,交叉编译...
查看>>
这些国货,在阿里平台上被美国剁手党抢疯了
查看>>
《Excel 职场手册:260招菜鸟变达人》一第 2 招 常用快捷键Windows与Mac对照
查看>>
《Greenplum企业应用实战》一第1章 Greenplum简介1.1 Greenplum的起源和发展历程
查看>>
开源世界已成围城:成本让企业蜂拥而来,也让企业退缩转投
查看>>