刮不刮所有结果

2024-04-24 07:54:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把NHL的匹配数据作废。然后,每个匹配项(url)必须刮取两行。当我取消一个匹配(一个url)时,结果不是空的。但当我放弃10场比赛,结果是空的,前)20刮16。你知道吗

import scrapy
from selenium import webdriver
from scrapy.selector import Selector
import time
from nhl.items import NHLItem


class NHL_Spider(scrapy.Spider):
    name='NHL'
    allowed_domains=["nhl.com"]
    start_urls=["https://www.nhl.com/gamecenter/20180%d"%i for i in range(20001,20011)]


    def __init__(self):
        scrapy.Spider.__init__(self)
        self.browser=webdriver.Chrome("/users/박정균/chromedriver")


    def parse(self,response):
        self.browser.get(response.url)   

        self.browser.find_element_by_xpath('//*[@id="gamecenter-index-component__app"]/div[3]/div/div/div[2]/div/nav/ul/li[2]/a').click()

        source=self.browser.page_source
        html=self.browser.find_element_by_xpath('//*').get_attribute('outerHTML')
        selector=Selector(text=html)

        rows = selector.xpath('//*[@class="statistics__season-stats"]/table/tbody/tr')


        for row in rows:
            item=NHLItem()
            item["Team"]=row.xpath('.//*[@class="media-heading small"]/text()')[0].extract()
            item["Shots"]=row.xpath('./td[2]/text()')[0].extract()
            item["FO"]=row.xpath('./td[3]/text()')[0].extract()
            item["PP"]=row.xpath('./td[4]/text()')[0].extract()
            yield item        

调试:已爬网(200)https://www.nhl.com/gamecenter/wsh vs pit/2018/10/04/2018020007>;(参考:无)

这是命令结果。你知道吗

csv(例如)wsh,30,15% 坑,42,40%<;——这是我的愿望

    wsh,30,15%
    (empty)      <-----this is my result

Tags: textfromimportselfdivbrowserurlextract