看到这个HTML
<div>
<p>
<span class="abc">Monitor</span> <b>$300</b>
</p>
<a href="/add">Add to cart</a>
</div>
<div>
<p>
<span class="abc">Keyboard</span> $20
</p>
<a href="/add">Add to cart</a>
</div>
Run Code Online (Sandbox Code Playgroud)
使用xpath我想解析Monitor $300和Keyboard $20.我用这个xpath
//div[a[contains(., "Add to cart")]]/p/text()
Run Code Online (Sandbox Code Playgroud)
但它选择了<span class="abc">Monitor</span> <b>$300</b>.我不想要标签.我如何只获得文字?
我收到了这个字符串'Velcro Back Rest \xa36.99'.注意它没有u在前面.它只是简单的ascii.
如何将其转换为unicode?
我试过这个,
>>> unicode('Velcro Back Rest \xa36.99')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xa3 in position 17: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
这个答案很好地解释了.但我和那个问题的OP 有同样的问题.在评论的答案中,温斯顿说:"你不应该编码一个字符串对象..."
但我正在工作的框架要求它应该转换为unicode字符串.我使用scrapy而且我有这条线.
loader.add_value('name', product_name)
Run Code Online (Sandbox Code Playgroud)
这里product_name包含有问题的字符串,它会抛出错误.
在MDN中声明,
如果finally块返回一个值,则该值将成为整个try-catch-finally生成的返回值,而不管try和catch块中的任何return语句如何:
所以我尝试执行以下代码,
function an(){
var r = try{
throw 1;
} catch(e){
console.log("Caught: %o", e);
} finally {
return 2;
}
console.log("r=%o", r);
return 3;
}
Run Code Online (Sandbox Code Playgroud)
这是行不通的.引发语法错误.
SyntaxError: syntax error
var r = try{
Run Code Online (Sandbox Code Playgroud)
这里有什么不对?
如何一次从循环中检索2个项目?
我有这个清单
lst = ['url1', 'value1', 'url2', 'value2', ... ]
Run Code Online (Sandbox Code Playgroud)
我想循环它,并且每次迭代我想要获取2个项目.
for x in lst:
x # here x loops 1 by one.
Run Code Online (Sandbox Code Playgroud)
我正在使用波纹管解决方案
for i in range(0, len(lst), 2):
url = lst[i]
val = lst[i+1]
Run Code Online (Sandbox Code Playgroud)
我想知道有没有内置的东西?
我有一个带有以下服务器代码的web.py应用程序.
import web
import mod1
urls = (
'/(\w*)/(c|r|u|d)/(.*)', '\\1.\\2',
)
if __name__ == "__main__":
app = web.application(urls, globals())
app.run()
Run Code Online (Sandbox Code Playgroud)
mod1.py 包含
class c:
def POST(self):
return "C"
class d:
def DELETE(self):
return "d"
class u:
def POST(self):
return "u"
class r:
def GET(self, _id):
return "v={0}".format(_id)
Run Code Online (Sandbox Code Playgroud)
现在请求http://.../mod1/r/3退货GET() takes exactly 2 arguments (4 given).
这里有什么问题?