小编Cor*_*ell的帖子

如何使用xpath选择以下sibling/xml标记

我有一个HTML文件(来自Newegg),他们的HTML组织如下.其规格表中的所有数据均为" desc ",而每个部分的标题均为" 名称".'以下是来自Newegg页面的两个数据示例.

<tr>
    <td class="name">Brand</td>
    <td class="desc">Intel</td>
</tr>
<tr>
    <td class="name">Series</td>
    <td class="desc">Core i5</td>
</tr>
<tr>
    <td class="name">Cores</td>
    <td class="desc">4</td>
</tr>
<tr>
    <td class="name">Socket</td>
    <td class="desc">LGA 1156</td>
Run Code Online (Sandbox Code Playgroud)

<tr>
    <td class="name">Brand</td>
    <td class="desc">AMD</td>
</tr>
<tr>
    <td class="name">Series</td>
    <td class="desc">Phenom II X4</td>
</tr>
<tr>
    <td class="name">Cores</td>
    <td class="desc">4</td>
</tr>
<tr>
    <td class="name">Socket</td>
    <td class="desc">Socket AM3</td>
</tr>
Run Code Online (Sandbox Code Playgroud)

最后,我希望有一个CPU(已经设置好)的类,它包含Brand,Series,Cores和Socket类型,用于存储每个数据.这是我能想到的唯一方法:

if(parsedDocument.xpath(tr/td[@class="name"])=='Brand'):
    CPU.brand = parsedDocument.xpath(tr/td[@class="name"]/nextsibling?).text
Run Code Online (Sandbox Code Playgroud)

并为其余的值执行此操作.我如何完成nextsibling并且有更简单的方法吗?

xml xpath lxml

89
推荐指数
3
解决办法
14万
查看次数

Java优化:内循环速度不一致?

我的朋友和我都很难过.在这两个代码块中,为什么第一个内循环比第二个内循环快?这是某种JVM优化吗?

public class Test {
   public static void main(String[] args) {
      int[] arr = new int[100000000];
      arr[99999999] = 1;
      long t1, t2, t3;
      for (int ndx = 0; ndx < 10; ndx++) {
         t1 = System.currentTimeMillis();
         for (int i = 0; i < arr.length; i++)
            if (0 < arr[i])
               System.out.print("");

         t2 = System.currentTimeMillis();
         for (int i = 0; i < arr.length; i++)
            if (arr[i] > 0)
               System.out.print("");

         t3 = System.currentTimeMillis();
         System.out.println(t2 - t1 +" "+(t3 - t2));
      }
   }
} …
Run Code Online (Sandbox Code Playgroud)

java optimization performance inequality jvm

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

3
推荐指数
2
解决办法
1887
查看次数

Python urllib.request和utf8解码问题

我正在编写一个简单的Python CGI脚本来抓取网页并在Web浏览器中显示HTML文件(就像代理一样).这是脚本:

#!/usr/bin/env python3.0

import urllib.request

site = "http://reddit.com/"
site = urllib.request.urlopen(site)
site = site.read()
site = site.decode('utf8')

print("Content-type: text/html\n\n")
print(site)
Run Code Online (Sandbox Code Playgroud)

从命令行运行时,此脚本可以正常工作,但是当它通过Web浏览器查看时,它会显示一个空白页面.这是我在Apache的error_log中得到的错误:

Traceback (most recent call last):
  File "/home/public/projects/proxy/script.cgi", line 11, in <module>
    print(site)
  File "/usr/local/lib/python3.0/io.py", line 1491, in write
    b = encoder.encode(s)
  File "/usr/local/lib/python3.0/encodings/ascii.py", line 22, in encode
    return codecs.ascii_encode(input, self.errors)[0]
UnicodeEncodeError: 'ascii' codec can't encode character '\u2019' in position 33777: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)

python unicode cgi apache2 unicode-string

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