python - Scrapy爬取同一页面上的多个XPathSelector

标签 python parsing xpath scrapy

我正在尝试从同一页面(同一 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”文件中检索数据。

最佳答案

试试这个:

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

关于python - Scrapy爬取同一页面上的多个XPathSelector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13641394/

相关文章:

Python 填满磁盘

python - 这种方法是否有更快的替代方法来从字典列表中获取最后更新消息?

java - 如何使用 JSON 将此 PHP 解析为 Java?

xml - XPath id() 函数

python - 使用 Python 删除包含数字和字符串的数据框中的小数点

python - 防止分组条形图中的标签重叠

java - 字符 android 处的 JSON 未终止对象

Java:解析带有嵌套节点的 XML 时遇到问题

php - 选择 nodeValue 但排除子元素

search - 在浏览器中进行实时xpath搜索