小编val*_*nko的帖子

xpath 通过包含值的父属性排除元素及其所有子元素

标记示例:

<div class="post-content">
    <p>
        <moredepth>
            <...>
                <span class="image-container float_right">
                    <div class="some_element">
                        image1
                    </div>
                    <p>do not need this</p>
                </span>
                <div class="image-container float_right">
                    image2
                </div>
                <p>text1</p>
                <li>text2</li>
            </...>
        </moredepth>
    </p>
</div>
Run Code Online (Sandbox Code Playgroud)

最糟糕的是“图像容器”的深度可以在任何级别。

我尝试使用的 Xpath:

//div[contains(@class, 'post-content')]//*[not(contains(@class, 'image-container'))]
Run Code Online (Sandbox Code Playgroud)

我应该使用什么 Xpath 来排除“some_element”和任何深度的“image-container”的任何其他子元素以及“image-container”元素本身?

此示例中的输出应为:

<p>
    <moredepth>
        <...>

            <p>text1</p>
            <li>text2</li>
        </...>
    </moredepth>
</p>
Run Code Online (Sandbox Code Playgroud)

PS是否可以使用CSS进行这样的选择?

html xpath dom css-selectors

6
推荐指数
2
解决办法
3214
查看次数

插入/更新/索引多行(100亿)数字作为值

我需要插入100亿行并多次更新它们的值.

表结构:

Column1 Column2 Count
1       1       99
1       2       10003
1       3       1
1       4       23
1       5       9994
...
99999   1       2
99999   2       2233
99999   3       5904
99999   4       12
99999   5       4598435
...
Run Code Online (Sandbox Code Playgroud)

我需要Column1编入索引.在一个表Count中,Integer在另一个表中将是Double.

什么数据库最适合我的需求?我被告知我应该使用NoSQL,但它们有很多.

sql database bigdata nosql data-structures

5
推荐指数
1
解决办法
208
查看次数

mysql查询从一个表中组合表

我的mysql表看起来像这样:

word1  word2  count
a      c      1
a      d      2
a      e      3
a      f      4
b      c      5
b      d      6
b      g      7
b      h      8
Run Code Online (Sandbox Code Playgroud)

"a"和"b"是用户输入 - 从表中选择*,其中word1 ='a'或word1 ='b' - 得到~10000行

我需要一个查询来获取:word1是intput"a"的列

word1_是输入"b"的列

word2和word2_是同一列,因此可以忽略其中一个

我需要结合上表中的表格.例如这个查询:

select 
  t1.word1, t1.word2, t1.count, 
  t2.word1 as word1_, t2.word2 as word2_, t2.count as count_
from table t1
join table t2 on t1.word2 = t2.word2
where t1.word1 = 'a' and t2.word1 = 'b'
Run Code Online (Sandbox Code Playgroud)

产生

word1   word2   count   word1_  word2_  count_  
a       c       1 …
Run Code Online (Sandbox Code Playgroud)

mysql sql database optimization

3
推荐指数
1
解决办法
90
查看次数

C将数组或变量保留在内存中,并在下次执行程序时访问它

我正在将mysql中的值加载到数组中,大约需要20分钟. dictionarytable得到3列word1(INT),word2(INT),距离(double)word1和word1得到的值从0到57999,跳过了word2的一些值,因为只有1.8亿行(不是58000*58000)

int i;
double **word;
word=(double **) calloc(58000, sizeof(double *));
for(i=0;i<58000;i++)
    word[i]=(double *) calloc(58000, sizeof(double));

for(word1=0;word1<58000;word1++) {
        char query[600];
        sprintf(query, "SELECT word1, word2, distance from dictionary where word1='%d'", word1);
        mysql_query(con, query);
        result = mysql_store_result(con);
        while (row = mysql_fetch_row(result)) {
            double distance;
            word2 = atoi(row[1]);
            sscanf(row[2], "%lf", &distance);
            word[word1][word2] = distance; 
        }
        mysql_free_result(result);
}
Run Code Online (Sandbox Code Playgroud)

该阵列需要14 GB的内存和7 GB的虚拟内存.现在我可以使用这个数组进行进一步的计算.

for(word1=0;word1<58000;word1++) {
    double result[58000];
    for(word2=0;word2<58000;word2++) {
        if(word1 != word2)
        for(i=0;i<58000;i++) {
            result[word1] += pow((word[word1][i] - word[word2][i]), 2);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

许多数组值都是0但我需要数组键来识别我要比较的单词.如何改进此算法?或者如何将此数组加载到内存中并在下次执行程序时重用它?

c arrays optimization

2
推荐指数
1
解决办法
59
查看次数

scrapy:访问管道中的spider类变量__init__

我知道你可以在process_item()中访问spider变量,但是如何在管道init函数中访问spider变量呢?

class SiteSpider(CrawlSpider):
   def __init__(self):
        self.id = 10

class MyPipeline(object):
     def __init__(self):
        ...
Run Code Online (Sandbox Code Playgroud)

我还需要在MyPipeline中访问CUSTOM_SETTINGS_VARIABLE.

scrapy python-2.7

1
推荐指数
1
解决办法
1481
查看次数