一. 课程安排

  • 课程内容
    • loggin模块的使用
    • 腾讯爬虫案例
    • items的使用和介绍
    • 阳光政务平台案例

二. 课堂笔记

1. loggin模块的使用

  1. import scrapy
  2. import logging
  3. logger = logging.getLogger(__name__)
  4. class QbSpider(scrapy.Spider):
  5. name = 'qb'
  6. allowed_domains = ['qiushibaike.com']
  7. start_urls = ['http://qiushibaike.com/']
  8. def parse(self, response):
  9. for i in range(10):
  10. item = {}
  11. item['content'] = "haha"
  12. # logging.warning(item)
  13. logger.warning(item)
  14. yield item

pipeline文件

  1. import logging
  2. logger = logging.getLogger(__name__)
  3. class MyspiderPipeline(object):
  4. def process_item(self, item, spider):
  5. # print(item)
  6. logger.warning(item)
  7. item['hello'] = 'world'
  8. return item

保存到本地,在setting文件中LOG_FILE = './log.log'

basicConfig样式设置
https://www.cnblogs.com/felixzh/p/6072417.html

回顾

1.png

如何翻页

2.png

2. 腾讯爬虫案例

通过爬取腾讯招聘的页面的招聘信息,学习如何实现翻页请求
http://hr.tencent.com/position.php

  1. 创建项目
  2. scrapy startproject tencent
  3. 创建爬虫
  4. scrapy genspider hr tencent.com

2.1 scrapy.Request知识点

  1. scrapy.Request(url, callback=None, method='GET', headers=None, body=None,cookies=None, meta=None, encoding='utf-8', priority=0,
  2. dont_filter=False, errback=None, flags=None)
  3. 常用参数为:
  4. callback:指定传入的URL交给那个解析函数去处理
  5. meta:实现不同的解析函数中传递数据,meta默认会携带部分信息,比如下载延迟,请求深度
  6. dont_filter:让scrapy的去重不会过滤当前URLscrapy默认有URL去重功能,对需要重复请求的URL有重要用途
  1. items.py
  2. import scrapy
  3. class TencentItem(scrapy.Item):
  4. # define the fields for your item here like:
  5. title = scrapy.Field()
  6. position = scrapy.Field()
  7. date = scrapy.Field()

4. 阳光政务平台案例

http://wz.sun0769.com/index.php/question/questionType?type=4&page=0