我正在尝试抓取以下网站: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}