【问题标题】:Scrapy crawl Multiple XPathSelector on same pageScrapy在同一页面上抓取多个XPathSelector
【发布时间】:2012-11-30 08:23:04
【问题描述】:

我试图从同一页面上的“主表”内的不同“表”中提取数据(相同的 URL)。项目字段在所有子表中具有相同的 XPath/相同的结构,所以我面临的问题只是为此页面上的表部分添加“多个”XPath

我的代码如下所示:

from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from tutorial.items import TutorialItem

class MySpider(BaseSpider):
name = "test"
allowed_domains = ["blabla.com"]
start_urls = ["http://www.blablabl..com"] // Start_url Doesnt change = Same Page



def parse(self, response):
    hxs = HtmlXPathSelector(response)
    titles = [hxs.select('//tr[@class="index class_tr group-6487"]')]

    //Here I would like to have Mltiple XPathSelectors ex:

    // titles = [hxs.select('//tr[@class="index class_tr group-6488"]')]
    // titles = [hxs.select('//tr[@class="index class_tr group-6489"]')]

    // Each for a table section within the same 'Main Table'



    items = []
    for title in titles:
        item = TutorialItem()
        item ['name'] = title.select('td[3]/span/a/text()').extract()
        item ['encryption'] = title.select('td[5]/text()').extract()
        item ['compression'] = title.select('td[8]/text()').extract()
        item ['resolution'] = title.select('td[7]/span/text()').extract()
        items.append(item)
    return items

如果可以实现,我将不胜感激;如果我为每个表部分编写不同的爬虫,那么我最终会为同一个 URL/表创建 10 个爬虫,并且我不太确定是否可以按顺序在同一个“csv”文件中检索数据。

【问题讨论】:

    标签: python parsing xpath scrapy


    【解决方案1】:

    试试这个:

    titles = [hxs.select('//tr[@class="index class_tr group-6487"] | //tr[@class="index class_tr group-6488"] | //tr[@class="index class_tr group-6489"]')]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-13
      • 1970-01-01
      相关资源
      最近更新 更多