Я очень новичок в паукообразной терапии.Я извлекаю данные с сайта www.goodsearch.com.
Ниже код работает без ошибок:
import scrapy
class GoodsearchSpider(scrapy.Spider):
name = 'goodsearch'
allowed_domains = ['www.goodsearch.com/coupons/macys']
start_urls = ['http://www.goodsearch.com/coupons/macys/']
#start_urls = ['https://www.goodsearch.com/coupons/shutterfly']
def parse(self, response):
listings = response.xpath('//*[@id="main"]/div[1]/ul/li')
for listing in listings:
coupon_description = listing.xpath('.//span[@class="title"]/text()').extract_first()
coupon_discount1 = listing.xpath('.//div[@class="top"]/text()').extract_first()
coupon_discount2 = listing.xpath('.//div[@class="bottom"]/text()').extract_first()
coupon_type = listing.xpath('.//div[@class="title"]/text()').extract_first()
coupon_expire_data = listing.xpath('.//p/text()').extract_first()
coupon_code = listing.xpath('.//div[1]/div[4]/span[1]/text()').extract_first()
coupon_used_times = listing.xpath('.//span[@class="click-count"]/text()').extract_first()
if coupon_discount1 is not None and coupon_discount2 is not None:
print("")
else:
coupon_discount1 = ""
coupon_discount2 = ""
print(coupon_discount1)
coupon_discount = coupon_discount1 + coupon_discount2
yield {'Coupon Description': coupon_description,
'Coupon Discount': coupon_discount,
'Coupon Type': coupon_type,
'Coupon Expire Data': coupon_expire_data,
'Coupon Code': coupon_code,
'Coupon Used Times': coupon_used_times,
}
Если я передаю один start_url, он работает нормальнокак приведенный выше код.Я хочу взять ссылки из CSV-файла имеет входной файл.
входной CSV-файл (goodsearch_inputfile.csv)
link,store_name
https://www.goodsearch.com/coupons/amazon,Amazon
https://www.goodsearch.com/coupons/target,Target
https://www.goodsearch.com/coupons/bestbuy,BestBuy
Каждая ссылка, которую мы должны генерировать один вывод CSVфайл означает, что мы должны сгенерировать три выходных файлаНе могли бы вы помочь мне с этим.
Я добавил ниже код, но бесполезно
'''
with open("goodsearch/input_file/goodsearch_inputfile.csv", "r") as links:
for link in links:
url, name = link.strip().split('|')
start_urls = [url.strip()]
fname = name
print '----------------------------------'
print 'name: {}, start urls: {}'.format(fname, start_urls) '''