import scrapy
from ..items import dealItem
class FarmtoolsSpider(scrapy.Spider):
name = 'farmtools'
allowed_domains = ['www.deal.ie']
start_urls = ['https://www.deal.ie/all?source=private&sort=publishdate%20desc']
def parse(self, response):
items = dealItem()
rows = response.xpath('//ul[@class="card-collection"]/li')
for row in rows:
link = row.xpath('.//a/@href').get() #this is the full link.
link_split = link.split('/')[-1] #this splits the url link th first time.
linkid = link_split.split('?')[0] #this splits it the second time.
title = row.xpath('.//div[1]/p[@class="card__body-title"]/text()').get()
county = row.xpath('.//a/div/div[2]/div[1]/ul[@class="card__body-keyinfo"]/li[contains(text(),"min")]/following-sibling::node()/text()').get()
price = row.xpath('.//p[@class="card__price"]/span[1]/text()').get()
subcat = row.xpath('.//a/div/div[2]/div[1]/p[2]/text()[2]').get()
zero = row.xpath('.//a/div/div[2]/div[1]/ul[@class="card__body-keyinfo"]/li[contains(text(),"min")]/text()').get()
if zero == '0 min':
items['linkid'] = linkid
items['title'] = title
items['county'] = county
items['price'] = price
items['subcat'] = subcat
items['zero'] = zero
}
第一个解析方法运行良好,但我不确定我是否正确编写了第二个解析方法。
第一个解析方法的一部分会抓取我想要跟踪的特定链接,这样我就可以从中抓取额外的数据。
我想要实现的是抓取我从第一个解析方法获得的链接并从中获取其他项目值,然后将它们全部添加为项目。
我也添加了items = DonedealItem()两者,但我不确定这是正确的。
当我现在运行它时,我得到:文件“/home/william/.local/lib/python3.7/site-packages/twisted/internet/defer.py”,第 654 行,在 _runCallbacks current.result = callback(current. result, *args, **kw) TypeError: parse_item_page() got an unexpected keyword argument 'donedeal.ie/cars-for-sale/e39-520i-for-breaking-also-have-lsd/…' 。对于每个被抓取的链接,我都会得到其中一个。我想要做的是向我从第一个解析方法中抓取的信息添加更多信息,如“卖家 ID”、“视图”等。希望这可以帮助
元芳怎么了
有只小跳蛙
随时随地看视频慕课网APP
相关分类