如何抓取多个网址?

时间:2019-02-18 19:59:06

标签: python scrapy web-crawler

我想输入多个链接并抓取它们的数据,但是我不知道如何编码。

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/scores/2019-02-17"]


    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="2018020904"]').click()
        self.browser.find_element_by_xpath('//*[@id="content-wrap"]/div/div[2]/div/section/div[2]/div/section/div/ul/li[2]/section/ul/li[3]/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

这是一场比赛的数据。由于下一场比赛,我想同时增加数字xpath('//*[@id="201802090{here}"]')xpath('//*[@id="content-wrap"]/div/div[2]/div/section/div[2]/div/section/div/ul/li[{here}]/section/ul/li[3]/a')(在这里是现货)。 只需2018020904,2018020905,2018020906li[2],li[3],li[4]成对。

0 个答案:

没有答案