xpath选择器-网站针对不同的数据点使用相同的类

时间:2019-09-13 20:20:54

标签: xpath scrapy

我正在尝试抓取以下网站:https://blogabet.com/tipsters

在此主页上,我要抓取与一个用户名相关的所有信息。因此,我正在使用 class="tipster-info col-lg-10 no-padding"

但是,不幸的是,选择号,关注者数和注册日期以来使用的是相同的类别编号xh-highlight

我的问题是:当每个数据字段都使用同一类时,如何分别对其进行刮取?

谢谢:)

这就是我的代码看起来像atm的样子。


oding: utf-8 -*-
import scrapy
from scrapy import Request
from scrapy.http import Request


class BlogmeSpider(scrapy.Spider):
    name = 'blogme'


    def start_requests(self):

        url = "https://blogabet.com/tipsters/?f[language]=all&f[pickType]=all&f[sport]=all&f[sportPercent]=&f[leagues]=all&f[picksOver]=0&f[lastActive]=12&f[bookiesUsed]=null&f[bookiePercent]=&f[order]=followers&f[start]=0"

        headers={
            'Accept': '*/*',
            'Accept-Encoding': 'gzip, deflate, br',
            'Accept-Language': 'en-US,en;q=0.9,pl;q=0.8,de;q=0.7',
            'Connection': 'keep-alive',
            'Host': 'blogabet.com',
            'Referer': 'https://blogabet.com/tipsters',
            'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36',
            'X-Requested-With': 'XMLHttpRequest'
        }

        yield scrapy.http.Request(url, headers=headers)



    def parse(self, response):

        listenings = response.xpath('//*[@class="tipster-info col-lg-10 no-padding"]')

        for listening in listenings:
            username = listening.xpath('.//h3[@class="name-t u-db u-mb1"]/strong/text()').extract_first()
            link = listening.xpath('.//*[@class="e-mail u-db u-mb1 text-ellipsis"]/a/@href').extract_first()
            #registered = listening.xpath('.//[@class="col-sh-4 col-xs-2 col-lg-2 no-padding"]')

            yield {'Username': username,
                  'Link': link}

0 个答案:

没有答案