小编Adi*_*tya的帖子

如何使用re()使用scrapy从javascript变量中提取数据?

我的items.py文件是这样的:

from scrapy.item import Item, Field

class SpiItem(Item):
    title = Field()
    lat = Field()
    lng = Field()
    add = Field()
Run Code Online (Sandbox Code Playgroud)

而蜘蛛是:

import scrapy
import re

from spi.items import SpiItem

class HdfcSpider(scrapy.Spider):
    name = "hdfc"
    allowed_domains = ["hdfc.com"]
    start_urls = ["http://hdfc.com/branch-locator"]

    def parse(self,response):
        addresses = response.xpath('//script')
        for sel in addresses:
            item = SpiItem()
            item['title'] = sel.xpath('//script[@type="text/javascript"][1]').re('(?<="title":).+(?=")')
            item['lat'] = sel.xpath('//script[@type="text/javascript"][1]').re('(?<="latitude":).+(?=")')
            item['lng'] = sel.xpath('//script[@type="text/javascript"][1]').re('(?<="longitude":).+(?=")')
            item['add'] = sel.xpath('//script[@type="text/javascript"][1]').re('(?<="html":).+(?=")')
            yield item
Run Code Online (Sandbox Code Playgroud)

查看页面源代码的整个javascript代码都写在://html/body/table/tbody/tr[348]/td[2].

为什么我的代码不起作用?我想只提取items文件中提到的四个字段.

javascript python regex scrapy web-scraping

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

找到一对可以使用4个操作到达另一对的整数

给定一对整数(例如(x,y)).我想找到是否有可能一次只使用下面提到的4个操作将它们转换为另一对整数.操作如下:

(x,x+y)
or (x+y,y)
or (x-y,y)
or (x,x-y)
Run Code Online (Sandbox Code Playgroud)

例如.(4,2)可以通过以下操作转换为(2,6):

(x-y,y) --- (2,2)
(x,x+y) --- (2,4)
(x,x+y) --- (2,6)
Run Code Online (Sandbox Code Playgroud)

其中(2,2)不能转换为(4,4).答案应该是肯定或否定.

algorithm math logic integer

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

处于分离模式的 docker 容器立即退出

我正在使用 docker SDK for python 并尝试创建一个容器。以下是我正在执行的代码:

import docker

client = docker.DockerClient(base_url='tcp://10.41.70.76:2375')
image = client.images.get('siab_user_one')

container = client.containers.run(image.tags[0], detach=True)
container.exec_run("ls") 
Run Code Online (Sandbox Code Playgroud)

但是,上面的代码会抛出以下错误:

Traceback (most recent call last):
  File "/Users/aditya/workspace/term/lib/python3.6/site-packages/docker/api/client.py", line 261, in _raise_for_status
    response.raise_for_status()
  File "/Users/aditya/workspace/term/lib/python3.6/site-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 409 Client Error: Conflict for url: http://10.41.70.76:2375/v1.35/containers/ccdb556fb234eeb86b19d37c30e9d64e428bf42a8d2b70784225dcf3c5347859/exec

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "dock.py", line 7, in <module>
    container.exec_run("ls")
  File "/Users/aditya/workspace/term/lib/python3.6/site-packages/docker/models/containers.py", line 196, in exec_run
    workdir=workdir,
  File "/Users/aditya/workspace/term/lib/python3.6/site-packages/docker/utils/decorators.py", line …
Run Code Online (Sandbox Code Playgroud)

python docker dockerpy

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

O(n!)与O((n + 1)!)相同吗?

因为O(n 2)与O((n + k)2)相同,其中k是任何常数.因此,上述陈述可以用相同的逻辑真实吗?

例如:O((n + 1)2)=> O(n 2 + n + 1)=> O(n 2)

algorithm big-o time-complexity

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