scrapy基础代码解析

  • 爬虫文件剖析:
    1. # -*- coding: utf-8 -*-
    2. import scrapy
    3. class QiubaiSpider(scrapy.Spider):
    4. name = 'qiubai' #应用名称
    5. #允许爬取的域名(如果遇到非该域名的url则爬取不到数据)
    6. allowed_domains = ['https://www.qiushibaike.com/']
    7. #起始爬取的url
    8. start_urls = ['https://www.qiushibaike.com/']
    9. #访问起始URL并获取结果后的回调函数,该函数的response参数就是向起始的url发送请求后,获取的响应对象.该函数返回值必须为可迭代对象或者NUll
    10. def parse(self, response):
    11. print(response.text) #获取字符串类型的响应内容
    12. print(response.body)#获取字节类型的相应内容
  • 配置文件settings.py修改:

    1. #修改内容及其结果如下:
    2. #19行:
    3. USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36' #伪装请求载体身份
    4. 22行:ROBOTSTXT_OBEY = False #可以忽略或者不遵守robots协议
  • scrapy基于xpath数据解析操作:

    • 爬取糗事百科的段子数据

      1. # -*- coding: utf-8 -*-
      2. import scrapy
      3. class QiubaiSpider(scrapy.Spider):
      4. name = 'qiubai'
      5. allowed_domains = ['https://www.qiushibaike.com/']
      6. start_urls = ['https://www.qiushibaike.com/']
      7. def parse(self, response):
      8. #xpath为response中的方法,可以将xpath表达式直接作用于该函数中
      9. odiv = response.xpath('//div[@id="content-left"]/div')
      10. content_list = [] #用于存储解析到的数据
      11. for div in odiv:
      12. #xpath函数返回的为列表,列表中存放的数据为Selector类型的数据。我们解析到的内容被封装在了Selector对象中,需要调用extract()函数将解析的内容从Selecor中取出。
      13. author = div.xpath('.//div[@class="author clearfix"]/a/h2/text()')[0].extract()
      14. content=div.xpath('.//div[@class="content"]/span/text()')[0].extract()
      15. #打印展示爬取到的数据
      16. print(author,content)
原文地址:https://www.cnblogs.com/huahuawang/p/12693446.html