Python 如何在uuinit_uuuuu()中使用其他_URL=[]来存储多个URL,然后调用parse()

Python 如何在uuinit_uuuuu()中使用其他_URL=[]来存储多个URL,然后调用parse(),python,selenium,scrapy,Python,Selenium,Scrapy,我的蜘蛛代码: import scrapy from scrapy.spider import BaseSpider from selenium import webdriver from youtube.items import YoutubeItem from scrapy.http import TextResponse from selenium.webdriver.common.keys import Keys import time from datetime import date

我的蜘蛛代码:

import scrapy
from scrapy.spider import BaseSpider
from selenium import webdriver
from youtube.items import YoutubeItem
from scrapy.http import TextResponse
from selenium.webdriver.common.keys import Keys
import time
from datetime import date
import re
import math
from scrapy.http import Request


class YoutubeSpider(BaseSpider):
    name = "youtube"
    allowed_domains = ['youtube.com']

    device_name = "nexus 6 "
    start_urls = "https://www.youtube.com/results?search_query="+device_name+"\"unboxing\""
    other_urls = []

def __init__(self):
    other_ulrs = []
    self.driver = webdriver.Firefox()

def parse(self, response):
    items = []
    self.driver.get(self.start_urls)

    d1 =self.driver.page_source.encode('utf-8')
    html = str(d1)
    response = TextResponse('none',200,{},html,[],None)

    '''
    my parse code......
    '''

    self.driver.close()
    return items
但是我的代码只适用于
start\u URL
正确,我有一个包含设备名称
device\u name.txt
的文件,我想发送这些名称并调用parse方法

我在
\uuuu init\uuuuuu()中使用此函数。

在返回内部
parse():
之前,我正在使用这个
if
调用
其他URL
,但它不起作用

if self.other_urls:
    return Request(self.other_urls.pop(0), meta={'items': [items]})

self.driver.close()
return items

我认为您应该使用self.other_url=[l.strip()表示l in…],因为否则它将被分配给函数局部变量。强调
self
部分。你应该使用
yield
而不是
return
,因为如果你把
项目
请求
s混在一起,那么你需要一个生成器函数。我认为你应该使用
self.other_URL=[l.strip()代表l in…]
,否则将分配给函数局部变量。强调
self
部分。你应该使用
yield
而不是
return
,因为如果你把
项目
请求
混在一起,那么你需要一个生成器功能。
if self.other_urls:
    return Request(self.other_urls.pop(0), meta={'items': [items]})

self.driver.close()
return items