【发布时间】:2025-12-10 07:55:02
【问题描述】:
我正在使用 scrapy python 创建网络爬虫。这是我的代码
import scrapy
class BlogSpider(scrapy.Spider):
name = 'blogspider'
start_urls = [
'https://perfumehut.com.pk/shop/',
]
def parse(self, response):
yield {
'product_link': response.css('a.product-image-link::attr("href")').get(),
'product_title': response.css('h3.product-title>a::text').get(),
'product_price': response.css('span.price > span > bdi::text').get(),
}
next_page = response.css('ul.page-numbers>li>a.next.page-numbers::attr("href")').get()
if next_page is not None:
print()
print(next_page)
print()
yield scrapy.Request(next_page)
def parse(self, response):
yield {
'title': response.css('h1::text').get(),
'batt': response.css('td.woocommerce-product-attributes-item__value p::text')[3].get(),
'brand': response.css('div.woodmart-product-brand img::attr(alt)').get(),
'brandimg': response.css('div.woodmart-product-brand img::attr(src)').get(),
'price': response.css('p.price').xpath('./span/bdi/text()').get(),
'r-price': response.css('p.price').xpath('./del/span/bdi/text()').get(),
's-sale': response.css('p.price').xpath('./ins/span/bdi/text()').get(),
'breadcrumbs': response.css('nav.woocommerce-breadcrumb a::text').getall(),
'tags': response.css('span.tagged_as a::text').getall(),
'attributes': response.css('td.woocommerce-product-attributes-item__value p::text').getall(),
'img': response.css('figure.woocommerce-product-gallery__image a::attr("href")').getall(),
'description': response.css('div.woocommerce-product-details__short-description p::text').get(),
'description1': response.css('#tab-description > div > div > p::text').getall(),
'description2': response.css('#tab-description > div > div > div > div > div > div > div > div > p::text').getall()
}
这是一个 woocommerce 网站。 共有 57 页,每页 12 个产品。 估计共有 684 种产品。
但是我的代码什么也没返回。
我在抓取 URL 时做错了什么?
【问题讨论】:
标签: python python-3.x web-scraping woocommerce scrapy