Python-Scrapy在web上爬行
好的,这是我的项目/蜘蛛,很好用Python-Scrapy在web上爬行,python,loops,scrapy,Python,Loops,Scrapy,好的,这是我的项目/蜘蛛,很好用 # -*- coding: utf-8 -*- import scrapy import time class SccbotakiSpider(scrapy.Spider): name = 'SccBotaki' start_urls = ['url'] time.sleep(1) def parse(self, response): daten = response.css('#daten').ext
# -*- coding: utf-8 -*-
import scrapy
import time
class SccbotakiSpider(scrapy.Spider):
name = 'SccBotaki'
start_urls = ['url']
time.sleep(1)
def parse(self, response):
daten = response.css('#daten').extract()
cartext = response.css('div.car_header > b::text').extract()
spacerimg = response.css('div.rechts > img::attr(src)').extract()
inhalt = response.css('div.inhalt')
prodname = inhalt.css('div.prod-name::text').extract()
artnr = inhalt.css('div.art-nr > span::text').extract()
avaible = inhalt.css('div.ampel > img::attr(src)').extract()
price = inhalt.css('div.preis::text').extract()
for item in zip(prodname,artnr,avaible,price):
scraped_info = {
'prodname' : item[0] ,
'artnr' : item[1] ,
'avaible' : item[2] ,
'price' : item[3] ,
}
yield scraped_info
请查看图片中的url,因为我无法在这篇文章中使用微小的url
但是我想把daten,cartext,SpaceLimg都刮干净,我会得到不同的/糟糕的结果 顺便说一句,在settings.py中,我希望导出到csv文件:
#Export as CSV Feed
FEED_FORMAT = "csv"
FEED_URI = "UltraRacing.csv"
所以,我的问题是,当我添加“daten,Cartex,spacerimg”时,为什么我不能像我的图像那样刮呢?
如果我把所有的信息都拼凑在一起,我只会得到一行csv,所有的信息都在一个单元格中,如果我从循环中删除“daten,Cartex,spacerimg”,我会得到完美的结果
希望这是有意义的…您正在尝试压缩不同大小的列表:
prodname
,artnr
,可用
,price
有41个元素,但是daten
和cartext
只有1个元素,而spacerimg
有9个元素。发布代码而不是图像我能做些什么来刮除所有元素?首先,你需要了解你想要什么输出(并在这里显示出来),左边是我的剧本,看起来很完美,别误会我的意思…但右边是我想刮的元素,但不是那样的…剧本看起来是这样的:,顺便说一下,谢谢你的回答,我很感激@BaggelisKotsifakhs您需要解释如何将41个产品代码元素与9个图像元素进行匹配我想添加一些if语句,但在我这样做时不起作用。。。例如,“如果你找不到任何“daten”,那么给我空白”,我想如果我这样做,问题就会解决