大家好,我在使用scrwpy监控亚马逊的一个网页变化,请问为啥老是判断第一个链接啊?
这代码
小白嘛 .. 体谅点
写的不错,
可是为啥老是判断第一个呀
爬取的链接倒是挺多的
说出你的需求
# -*- coding: utf-8 -*- import scrapy import time import smtplib from email.mime.text import MIMEText from email.header import Header import datetime as dt class JiankongSpiderSpider(scrapy.Spider): name = jiankong_spider #allowed_domains = [ guangzhou.okcis.cn ] start_urls = [ https://www.amazon.com/s?k=power+bank i=mobile rh=n%3A2335752011%2Cp_36%3A9000-10000 dc qid=1631606774 rnid=2491154011 ref=sr_nr_p_36_1 ] def parse(self, response): link = response.xpath( //a[@class= a-link-normal a-text-normal ]/@href ).extract() title = response.xpath( //a[@class= a-link-normal a-text-normal ]/span/text() ).extract() price = response.xpath( //div[@class= a-row a-size-base a-color-base ]/a/span[1]/span[1]/text() ).extract() for links,titles,prices in zip(link,title,price): zb = https://www.amazon.com/ +str(links)+ 标题: +str(titles)+ 价格: +str(prices) print( 第一次 ,zb) old_score = new_score = zb print(new_score) while True: if old_score != new_score: print( -------------------------------------------------------------------监控到发生变化------------------------------------------------------------------- ) print( 变化内容: , old_score) old_score = new_score else: print( 没有变化 ) time.sleep(10)
就是需要判断每次爬取的链接是否发生变化,变化后的新链接和原链接打印出来
不是得用while True 一直循环着才能每次提取判断?
字符串对比
旧的存起来,新的比一下就行了
首先你 start_urls只请求了一个,得到了link title price都是一个数据来的
不会变的
你这逻辑都是错的
yield 回去不是也可以
你这有yield?