【问题标题】:CSS selector in ScrapyScrapy 中的 CSS 选择器
【发布时间】:2022-01-22 00:39:57
【问题描述】:
import scrapy
class CliffTop(scrapy.Spider):
name = 'ctop'
start_urls = [
'https://www.net-a-porter.com/en-in/shop/clothing/tops'
]
def parse(self, response):
all_div_title= response.css('a::attr(href) div.ProductItem24')
mname = all_div_title.css('span.ProductItem24__designer::text').extract()
yield {
'name': mname
}
现在当我运行蜘蛛时,我没有得到任何输出。谁能告诉我 CSS 选择器有什么问题?
优先级:提取名称
【问题讨论】:
标签:
python
web-scraping
scrapy
【解决方案1】:
数据由 javascript 从 xhr 完全动态加载,scrapy 无法呈现 javascript。因此,要获取数据,您需要一个自动化工具,例如带有 scrapy 的 re/json/selenium。这里我用的是json。
脚本:
import scrapy
class CliffTop(scrapy.Spider):
name = 'ctop'
#start_urls = ['https://www.net-a-porter.com/en-in/shop/clothing/tops']
def start_requests(self):
headers= {
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36",
"x-ibm-client-id": "95f14cbd-793e-46ec-9f76-6fac2fbb6683",
"accept-language": "en-US,en;q=0.9,bn;q=0.8,es;q=0.7,ar;q=0.6"
}
yield scrapy.Request(
url='https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60',
callback=self.parse,
method= 'GET',
headers=headers
)
def parse(self, response):
titles= response.json()['products']
for title in titles:
mname = title['nameEN']
yield {'name': mname}
输出:
{'name': 'Faye cropped shirred stretch-cotton top'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Cyprus cropped cutout shirred linen halterneck top'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Flocked cotton-jersey T-shirt'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Printed cotton-jersey hoodie'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Cotton-jersey T-shirt'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Checked twill-trimmed cotton-jersey T-shirt'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Plum ruffled broderie anglaise organic cotton-poplin blouse'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Grow Up Bee Happy embroidered printed cotton-jersey sweatshirt'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Cropped flocked cotton-jersey T-shirt'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Asymmetric cotton-jersey and ruffled taffeta T-shirt'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Checked cotton-jersey hoodie'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Printed cotton-jersey T-shirt'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Kaye ribbed organic cotton-jersey turtleneck top'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Ines printed cotton-poplin peplum blouse'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Estelle cropped open-back floral-print linen top'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Ribbed silk turtleneck top'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': '+ Ed Curtis embroidered cotton-jersey T-Shirt'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Cropped flocked organic cotton-jersey hoodie'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Printed cotton-jersey hoodie'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Oversized printed cotton-jersey T-shirt'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Ribbed stretch organic cotton-jersey tank'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Ribbed modal and cotton-blend jersey tank'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Ethel ruffled embroidered organic cotton-voile blouse'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Asymmetric cotton-jersey and ruffled taffeta T-shirt'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Zip-detailed cotton-jersey sweatshirt'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Evie cutout gingham recycled seersucker top'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Ottica cropped printed linen halterneck top'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Printed cotton-jersey T-shirt'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Cotton-jersey hoodie'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Ruffled broderie anglaise cotton-poplin and jersey T-shirt'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Button-embellished striped organic cotton-blend jersey T-shirt'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Calipo cropped shirred linen halterneck top'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Amanda lace-trimmed satin blouse'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Embroidered cotton-jersey T-shirt'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Amie ruffled floral-print organic cotton-poplin blouse'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'The Daily ribbed stretch-cotton tank'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Ribbed organic cotton-jersey top'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Henley Pima cotton-jersey T-shirt'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Biggins matte-satin camisole'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Asymmetric embroidered cotton-jersey sweatshirt'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Oversized ruffled printed organic cotton-poplin blouse'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Patrizia pintucked broderie anglaise-trimmed cotton-poplin top'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Dallas embroidered cotton and TENCEL-blend blouse'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Brixton stretch-jersey camisole'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Savona paisley-print silk crepe de chine blouse'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Striped cotton-poplin tunic'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Valensole ribbed-knit bralette'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Jersey hoodie'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Cropped flocked cotton-jersey T-shirt'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Appliquéd organic cotton-jersey sweatshirt'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Cassia cropped scalloped floral-print linen top'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Neza open-back satin camisole'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': '+ NET SUSTAIN Met cutout ribbed organic cotton-blend jersey top'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Embroidered cotton-jersey T-shirt'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Colorado thong bodysuit'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
{'name': 'Delora floral-print linen shirt'}
2021-12-20 19:43:49 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.net-a-porter.com/api/nap/search/resources/store/nap_in/productview/byCategory?attrs=true&category=%2Fclothing%2Ftops&locale=en_US&pageNumber=2&pageSize=60>
.. 以此类推