我在爬这个网站
https://www.ebay.com/sch/i.html?_dmd=2&_dkr=1&iconV2Request=true&_ssn=a2z_prime_auto_parts&store_name=a2zprimeautoparts&_oac=1&_pgn=1
我试图进入每一个产品,并取得其名称和价格和其他东西,但我面临的问题,这是新的我。
总共有1800多个产品,都有相同的xpath,我想刮一下。但它只刮了96个。可能是什么问题?
import scrapy
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule
class AutopartSpider(CrawlSpider):
name = 'Autopart'
allowed_domains = ['www.ebay.com']
start_urls = ['https://www.ebay.com/sch/i.html?_dmd=2&_dkr=1&iconV2Request=true&_ssn=a2z_prime_auto_parts&store_name=a2zprimeautoparts&_oac=1']
rules = (
Rule(LinkExtractor(restrict_xpaths="//div[@class ='s-item__info clearfix']/a"), callback='parse_item', follow=True),
Rule(LinkExtractor(restrict_xpaths="//a[@class='pagination__next icon-link']"))
)
def parse_item(self, response):
yield{
'part_name':response.xpath("//div[@class='vim x-item-title']/h1/span/text()").get()
}
1条答案
按热度按时间oiopk7p51#
你的代码运行正常,但是你遇到了一个小问题,这就是为什么你得到的响应状态200/400,也就是
follow = True
不在正确的位置。你必须把它放在分页Rules
中。输出: