关于爬虫爬取数据的问题

关于爬虫爬取数据的问题

https://img1.sycdn.imooc.com//climg/624e83240925cf1419201080.jpg

https://img1.sycdn.imooc.com//climg/624e837b094050d719201080.jpg

爬虫代码

import scrapy
import os

class TianSpider(scrapy.Spider):
    name = 'tian'
    allowed_domains = ['tianqi.com']
    #start_urls = ['http://lishi.tianqi.com/zhengzhou/index.html']

    def start_requests(self):
        with open(os.path.join(os.getcwd(),'spiders','brand.txt'),'r',encoding='utf-8') as f:
            all_data = f.read().split('\n')
        for data in all_data:
            url = 'http://lishi.tianqi.com/{}/index.html'.format(data.split(',')[0])
            yield scrapy.Request(url=url,callback=self.parse,meta={'item':data.split(',')[1]})

    def parse(self, response):
        all_url = response.xpath("//div[@class='linegraphborder']/div/div[4]//a/@href")
        for data in all_url:
            new_url = 'http://lishi.tianqi.com'+data.extract()
            yield scrapy.Request(url=new_url,callback=self.page_parse,meta={'item':response.meta['item']})

    def page_parse(self,response):
        all_data = response.xpath("//ul[@class='thrui']/li")
        for data in all_data:
            item = {}
            item['城市'] = response.meta['item']
            item['日期'] = data.xpath("./div[1]/text()").extract_first()[:10]
            item['最高气温'] = data.xpath("./div[2]/text()").extract_first().replace('℃','')
            item['最低气温'] = data.xpath("./div[3]/text()").extract_first().replace('℃','')
            item['天气'] = data.xpath("./div[4]/text()").extract_first()
            item['风向'] = data.xpath("./div[5]/text()").extract_first()[-2]
            yield item


老师为什么没次爬取数据量不一样,总是缺失数据

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕凡 2022-04-07 17:43:48

同学,你好!

爬取页面过多速度过快会导致数据丢失,同学在setting中加上AUTOTHROTTLE_ENABLED = True或减少爬取页面,看数据是否一致,祝学习愉快~

  • 提问者 __________千 #1

    老师还是不行加上这个AUTOTHROTTLE_ENABLED = True

    2022-04-11 17:15:28
  • 好帮手慕美 回复 提问者 __________千 #2

    同学,你好!同学爬取的数据量很大访问会频繁,可以减少爬取的数据量或添加代理,避免网站识别到是爬虫。

    祝学习愉快!

    2022-04-11 18:16:41
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师