我想遍历coinmarketcap上排名前20位的交易所,例如https://coinmarketcap.com/exchanges/fatbtc/
现在我花了几个小时找到选择器,例如价格为
在Scrapy Shell中,我尝试了……等等,但是都无法正常工作:
来自Addon XPath Helper :
response.xpath('/html/body/div[@id='__next']/div[@class='cmc-app-wrapper.cmc-app-wrapper--env-prod.sc-1mezg3x-0.fUoBLh']/div[@class='container.cmc-main-section']/div[@class='cmc-main-section__content']/div[@class='cmc-exchanges.sc-1tluhf0-0.wNRWa']/div[@class='cmc-details-panel-table.sc-3klef5-0.cSzKTI']/div[@class='cmc-markets-listing.lgsxp9-0.eCrwnv']/div[@class='cmc-table.sc-1yv6u5n-0.dNLqEp']/div[@class='cmc-table__table-wrapper-outer']/div/table/tbody/tr[@class='cmc-table-row.sc-1ebpa92-0.kQmhAn'][1]/td[@class='cmc-table__cell.cmc-table__cell--sortable.cmc-table__cell--right.cmc-table__cell--sort-by__price']').getall()
来自Chrome检查器:
response.xpath('/td[@class='cmc-table__cell.cmc-table__cell--sortable.cmc-table__cell--right.cmc-table__cell--sort-by__price']').getall()
从Chrome检查器复制XPath : :
response.xpath('//*[@id="__next"]/div/div[2]/div[1]/div[2]/div[2]/div/div[2]/div[3]/div/table/tbody/tr[1]/td[5]').extract()
我使用的是Chrome Inspector,从今天起,一个名为“ Xpath helper”的插件用于显示选择器,但我仍然不太明白我在这里所做的事情:( ..我非常感谢任何想法访问这些数据,并让我对找到这些选择器有更好的了解。
答案 0 :(得分:1)
非常简单(我用position()
跳过了表头):
for row in response.xpath('//table[@id="exchange-markets"]//tr[position() > 1]'):
price = row.xpath('.//span[@class="price"]/text()').get()
# price = row.xpath('.//span[@class="price"]/@data-usd').get() #if you need to be more precise
答案 1 :(得分:0)
XPATH基本上是HTML的// tagname [@ attribute ='value']。
对于您的网站,您可以使用//table[@id='exchange-markets']//tr/td[2]/a
遍历名称
并使用//table[@id='exchange-markets']//tr/td[5]
我们基本上是说要在第5列的表格行中查看。