爬行时动态starturls列表

2024-04-20 15:52:54 发布

您现在位置:Python中文网/ 问答频道 /正文

class SomewebsiteProductSpider(scrapy.Spider):
    name = "somewebsite"
    allowed_domains = ["somewebsite.com"]


start_urls = [

]

def parse(self, response):
    items = somewebsiteItem()

    title = response.xpath('//h1[@id="title"]/span/text()').extract()
    sale_price = response.xpath('//span[contains(@id,"ourprice") or contains(@id,"saleprice")]/text()').extract()
    category = response.xpath('//a[@class="a-link-normal a-color-tertiary"]/text()').extract()
    availability = response.xpath('//div[@id="availability"]//text()').extract()
    items['product_name'] = ''.join(title).strip()
    items['product_sale_price'] = ''.join(sale_price).strip()
    items['product_category'] = ','.join(map(lambda x: x.strip(), category)).strip()
    items['product_availability'] = ''.join(availability).strip()
    fo = open("C:\\Users\\user1\PycharmProjects\\test.txt", "w")
    fo.write("%s \n%s \n%s" % (items['product_name'], items['product_sale_price'], self.start_urls))
    fo.close()
    print(items)
    yield items

在测试.py在

^{pr2}$

如何将动态起始URL列表传递给“SomewebsiteProductSpiders”对象测试.py在启动爬行过程之前?任何帮助都将不胜感激。 谢谢您。在


Tags: textnameidtitleresponseextractitemssale
1条回答
网友
1楼 · 发布于 2024-04-20 15:52:54

process.crawl接受传递给spider构造函数的可选参数,因此您可以从spider的__init__填充{},也可以使用自定义的start_requests过程。例如

测试.py

...
process.crawl(SomewebsiteProductSpider, url_list=[...])

某蜘蛛.py

^{pr2}$

相关问题 更多 >