有一条路径如下:
r"^foo/(?P<id>\d+)/$"
在模板中你需要获取变量的值id
那些。在页面/foo/2/上,你需要得到 "2"
是否可以在不将id值传递给context
函数render
且不使用您自己的模板过滤器/标签的情况下执行此操作?
有一条路径如下:
r"^foo/(?P<id>\d+)/$"
在模板中你需要获取变量的值id
那些。在页面/foo/2/上,你需要得到 "2"
是否可以在不将id值传递给context
函数render
且不使用您自己的模板过滤器/标签的情况下执行此操作?
有房屋:h1、h2、h3等。
有居民:p1、p2、p3 等。
您需要制作以下列表:
[
({h1: [p1]},
{h2: [p2]},
{h3: [p3]}
),
({h1: [p1, p2]},
{h2: [p3]},
{h3: []}
),
({h1: [p1, p2, p3]},
{h2: []},
{h3: []}
),
...
]
也就是说,要创建住宅中居民分布的所有可能组合。我自己无法解决这个问题,你能帮帮我吗?
有一个解析器:
class AppWindow(QtWidgets.QMainWindow):
def __init__(self):
QtWidgets.QMainWindow.__init__(self)
#...
def start(self):
self.thread1 = parser()
t = threading.Thread(target=self.thread1.run)
t.daemon = True
t.start()
#...
class parser(QtCore.QThread):
def __init__(self):
super(parser, self).__init__()
QtCore.QThread.__init__(self)
#...
def run(self):
#...
data = [...]
queue = mp.Queue()
for i in data:
queue.put(i)
processes = [mp.Process(target = parse_data, args=(queue)) for i in range(10)]
for process in processes:
process.daemon = True
process.start()
#...
def parse_data(data):
for elem in data:
def parse_elem(elem):
#...
html = Client(elem['url'])
#...
p = ThreadPool(processes = 1)
try:
p_result = p.apply_async(parse_elem, (elem))
res = p_result.get(timeout=60) # поток создаётся только для того, чтобы установить таймаут на выполнение
p.terminate()
p.close()
except:
#...
class Client(QWebEnginePage): # source: https://stackoverflow.com/questions/8049520/web-scraping-javascript-page-with-python#answer-51341435
def __init__(self, url):
global app
print(url)
self.app = QApplication(sys.argv)
QWebEnginePage.__init__(self)
self.html = ""
self.loadFinished.connect(self.on_load_finished)
self.load(QUrl(url))
self.app.exec_()
def on_load_finished(self):
self.html = self.toHtml(self.Callable)
def Callable(self, data):
self.html = data
self.app.quit()
def main():
mp.freeze_support()
app = QtWidgets.QApplication(sys.argv)
appwindow = AppWindow()
appwindow.show()
sys.exit(app.exec_())
if __name__ == "__main__":
main()
但是调用Client
失败,返回错误:WARNING: QApplication was not created in the main() thread.
. 还没有完全弄清楚它是如何工作的。它可以Client
工作吗?
我有一个包含以下内容的 HTML 页面:
...
<div class='zxc'>
<div class='abc'>
<div class='one'>
<p class='child'>
<b>Hello, Jack!</b>
</p>
<div class='child'>
<p>Lorem Ipsum...</p>
<a href='/'>Bye, Kate!</a>
</div>
</div>
<div class='two'>
<p class='child'>
<b>Hello, Jack!</b>
</p>
<div class='child'>
<p>Lorem Ipsum...</p>
<a href='/'>Bye, Kate!</a>
</div>
</div>
<div class='three'>
<div class='child1'>
<div class='child2'>
<p class='child3'>
<b class='child4'>Hello, Jack!</b>
</p>
</div>
</div>
<div class='child1'>
<p>Lorem Ipsum...</p>
<a href='/'>Bye, Kate!</a>
</div>
</div>
</div>
</div>
...
从中,使用XPath,我想获取包含“ Hello ”和“ Bye ”的元素的父级,即 , div.one
,div.two
但 NOT div.three
(因为一个节点比另一个节点高 2 个以上节点), notdiv.abc
和 not div.zxc
(也就是说,第一个父母)。
我在您可以使用的堆栈上阅读
.//*[contains(text(), 'Hello')]/ancestor::*[.//*[contains(text(), 'Bye')]][1]
,
但它也适用于元素div.three
,我真的不想要。
搜索时是否可以以某种方式限制节点之间“高度”的差异?
标题并没有完全传达问题的本质,对此我深表歉意,但问题的本质是这样的:
有很多{(id, name), ...}:
{
(0, 'Акула'),
(0, 'Shark'),
(1, 'Кот'),
(1, 'Cat'),
(2, 'Тигр'),
(2, 'Tiger'), ...}
元素的数量可能会有所不同。
从中我需要得到:
{('Акула', 'Кот', 'Тигр', ...),
('Акула', 'Cat', 'Тигр', ...),
('Акула', 'Кот', 'Tiger', ...),
('Shark', 'Кот', 'Тигр', ...),
('Shark', 'Cat', 'Тигр', ...), . . . }
也就是说,您需要将所有元素与不同的元素完全混合id
。
我从来没有遇到过这样的事情,你能帮我解决这个问题吗?
有一串'50pcs, 80dm 0.8m × 一个 10cm*20cm (10cm) Car car 10m 12r.m. 你好,地狱 40 厘米 x 70 厘米。
从中你需要得到['50pcs', '80dm', '0.8m', '10cm', '20cm', '10cm', '10m', '12p.m.', '40cm', '70cm 。 ']
如何使用注册。表达式来完成这样的任务?
你好!
在 Python 3.6 下安装 MySQL 已经有几个小时了,但遇到了许多问题。我在堆栈、github等上尝试了所有建议的解决方案,但仍然不起作用!
试过:
你能帮我吗?
我对正则表达式不是很熟悉,谷歌搜索,我仍然没有找到解决方案,因此,任务本身:
我很乐意接受任何建议!