繁体   English   中英

selenium-webdriver:如何将循环用于find_elements

[英]selenium-webdriver: How to use for loop to find_elements

我想获取所有链接和start_time和end_time一个页面,然后发送到函数(parse_detail)废弃另一个信息但我不知道如何使用selenium for循环

这是我的代码并且有错误:

for site in sites:
exceptions.TypeError: 'WebElement' object is not iterable

请教我如何在硒中使用环状scrapy。 谢谢!

class ProductSpider(Spider):
    name = "city20140808"
    start_urls = ['http://wwwtt.tw/11']

    def __init__(self):
        self.driver = webdriver.Firefox()
        dispatcher.connect(self.spider_closed, signals.spider_closed)

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

        item  = CitytalkItem()
        sites = self.driver.find_element_by_css_selector("div.body ")
        for site in sites:
            linkiwant = site.find_element_by_css_selector(".heading a")
            start = site.find_element_by_css_selector("div.content p.m span.date")
            end = site.find_element_by_css_selector("div.content p.m span.date")

            item['link'] = linkiwant.get_attribute("href") 
            item['start_date']  = start.text
            item['end_date']  = end.text
            yield Request(url=item['link'], meta={'items':items}, callback=self.parse_detail)  
     def parse_detail(self,response):
        item = response.meta['items']
        ........
        yield item

而不是find_element_by_css_selector() ,它返回一个元素,你需要使用find_elements_by_css_selector() ,它返回一个元素列表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM