小编Mar*_*eel的帖子

使用python从网页中提取所有链接

在 Udacity 的计算机科学简介轨道之后,我正在尝试制作一个 python 脚本来从页面中提取链接,下面是我使用的代码:

我收到以下错误

NameError:未定义名称“页面”

这是代码:

def get_page(page):
    try:
        import urllib
        return urllib.urlopen(url).read()
    except:
        return ''

start_link = page.find('<a href=')
start_quote = page.find('"', start_link)
end_quote = page.find('"', start_quote + 1)
url = page[start_quote + 1:end_quote]

def get_next_target(page):
    start_link = page.find('<a href=')
    if start_link == -1:
        return (None, 0)
    start_quote = page.find('"', start_link)
    end_quote = page.find('"', start_quote + 1)
    url = page[start_quote + 1:end_quote]
    return (url, end_quote)

(url, end_pos) = get_next_target(page)

page = page[end_pos:]

def print_all_links(page):
    while True:
        (url, …
Run Code Online (Sandbox Code Playgroud)

python

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

Firebird Cursors - 你为什么要使用它?

此处的文档中,给出了以下代码示例cursor:

execute block
returns (
  relation char(31), 
  sysflag int)
as
declare cur cursor for 
  (select rdb$relation_name, rdb$system_flag from rdb$relations);
begin
  open cur;
  while (1=1) do
  begin
    fetch cur into relation, sysflag;
    if (row_count = 0) then leave;
    suspend;
  end
  close cur;
end
Run Code Online (Sandbox Code Playgroud)

但这也可以按如下方式完成:

execute block
returns (
  relation char(31), 
  sysflag int)
as
begin
  for select rdb$relation_name, rdb$system_flag 
  from rdb$relations 
  into relation, sysflag 
  do begin
    suspend;
  end
end
Run Code Online (Sandbox Code Playgroud)

那我为什么要用一个呢?最终上面的例子甚至不需要,execlute block因为它只是一个简单的选择语句.所以我想这个例子太简单了,无法证明这一点.

sql firebird cursor

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

当我们使用new运算符创建对象时,它是否使用实际的.class文件在java中创建对象

我对一个主题感到困惑,无法在网上找到它.据我了解,当程序启动时,类加载器加载.class文件并将它们作为具有该类型的对象存储在内存中Class.

我的问题是我们何时使用:

Test test = new Test();
Run Code Online (Sandbox Code Playgroud)

是使用.class文件创建新对象,还是使用Class内存中已有的对象?

java class classloader new-operator

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

使用`dlopen`重新加载运行时库

基于c ++的运行进程是否可以使用重新加载基于c ++的动态库dlopen.

正在运行的进程将轮询新版本的动态库(使用相同的API).一旦检测到此类文件,就会发生以下一系列操作:

  1. 使用旧版库卸载 dlclose
  2. 复制较新的dylib并覆盖旧版本的文件.
  3. 该过程使用从该位置加载较新版本 dlopen
  4. 根据dlsym新加载的库设置函数指针变量.

在最后一个阶段,我实际上获得了所需的API并将其放在我的主代码中的函数指针中,以便稍后使用.

但是,似乎我的程序在第三阶段后意外地崩溃了.是否可能该dlclose部分在流程虚拟空间中留下旧库的一些残余?有没有更好的方法呢?

顺便说一句,在Windows中它使用LoadLibrary, FreeLibrary and GetProcAddress而不是使用dlopen, dlclose and dlsym.

c++ macos dynamic-linking dlopen

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

错误:用于编码 windows-1251 的不可映射字符 (0x98)

我的项目组装有问题:

D:...\Main.java:112: 错误:编码 windows-1251 的不可映射字符 (0x98)
robots.getBrowserControl().findElement(By.xpath("//div[.='??????) ??']“))。点击();

此错误行: robot.getBrowserControl().findElement(By.xpath("//div[.='????????']")).click();

图片: 错误IDEA 设置。右下角选择了UTF-8。我不确定,但也许它就像符号“?”

图片错误

这是我的 gradle 文件

plugins {
    id 'java'
}

group 'ru.grbi3yh.processthesefiles'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

jar {
    baseName = 'ProcessthFiles'
}


apply plugin: 'application'

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
    compile group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '2.41.0'
    compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.7'
}
Run Code Online (Sandbox Code Playgroud)

java encoding intellij-idea gradle windows-1251

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

Amazon Redshift 的 JDBC 驱动程序与 Python 适配器之间的区别

为了连接 Amazon Redshift,我使用 pythonpsycopg2模块将数据集注入到 Amazon Redshift 上,并且运行良好。只是提一下,我使用 Redshift 的端点 URL 通过psycopg2下面使用 python DB API v2.0 的连接进行连接。Amazon Redshift 还提供 JDBC 或 ODBC URL 进行连接,但我没有使用它。

伪代码:

import psycopg2
try:
    connection = psycopg2.connect(user = "redshift_user",
                                  password = "redshift_password",
                                  host = "redshift_endpoint",
                                  port = "5432",
                                  database = "redshift_database")

    cursor = connection.cursor()
Run Code Online (Sandbox Code Playgroud)

注意:我还使用 Redshift 的相同端点从不同的客户端(例如 Tableau、Navicat Premium 或在其下使用 JDBC/ODBC 驱动程序的其他 SQL 客户端)连接它。

但最近亚马逊给我发了关于 JDBC 驱动程序更新的消息,

AWS Redshift 发现 Redshift JDBC 驱动程序中存在导致服务器意外重启的问题,该问题随后在最新的 Redshift JDBC 驱动程序中得到修复。US-WEST-2 区域中的一些集群正在注册来自旧版本 JDBC 驱动程序的连接,可能会受到此问题的影响。

请将您的驱动程序升级到最新版本:1.2.36.1060,可供下载[1]。

[1] https://docs.aws.amazon.com/redshift/latest/mgmt/configure-jdbc-connection.html#download-jdbc-driver …

psycopg2 amazon-web-services python-db-api amazon-redshift

6
推荐指数
0
解决办法
3518
查看次数

在箭头 (-&gt;) 的帮助下切换表达式,现在可以产生/返回值

Java 14 中扩展的 switch 表达式,除了程序员/审阅者的视觉清晰度之外,switch 表达式的需求并不明确。是吗

  1. 与旧的 switch 表达式不同的字节码实现?
  2. 与以前的版本相比,执行方面有任何性能改进吗?

参考: https: //www.techgeeknext.com/java/java14-features

JDK 14版本:

 int numLetters = switch (day) {
    case MONDAY, FRIDAY, SUNDAY -> 6;
    case TUESDAY                -> 7;
    case THURSDAY, SATURDAY     -> 8;
    case WEDNESDAY              -> 9;
};
Run Code Online (Sandbox Code Playgroud)

JDK 14 字节代码

   0: iconst_1
   1: istore_1
   2: iload_1
   3: tableswitch   { // 1 to 7
                 1: 44
                 2: 44
                 3: 44
                 4: 49
                 5: 54
                 6: 54
                 7: 59
           default: 64
      }
  44: bipush        6
  46: goto          65 …
Run Code Online (Sandbox Code Playgroud)

java performance switch-statement jvm-bytecode java-14

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

以编程方式修改 JNDI 连接池

我在项目中使用 Apache Tomcat JDBC 连接池库并相应地配置了 context.xml 文件。我的应用程序实例需要在多个位置运行,但应用程序上的负载会有所不同,因此我想根据运行时特定实例的客户大小修改 maxActive 大小和其他一些属性。

  <Context path="/abc"
             docBase="abc"
             debug="5"
             reloadable="false"
             crossContext="true">
       <Resource name="jdbc/abc"
          auth="Container"
          type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
          driverClassName="xxxxx"
          url="xxxxxxx"
          username="xxxxx" password="xxxxxx"
          maxActive="20"
          initialSize="0"
          ...
          />
     </Context>
Run Code Online (Sandbox Code Playgroud)

java mysql tomcat connection-pooling jdbc

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

代码重用:使用常见的 getter 方法返回枚举字段列表

我有两个枚举:

主菜单选项

public enum MainMenuOptions {
    
    EXIT("Exit"),
    VIEW_RESERVATIONS("View Reservations By Host"),
    CREATE_RESERVATION("Create A Reservation"),
    EDIT_RESERVATION("Edit A Reservation"),
    CANCEL_RESERVATION("Cancel A Reservation");
    
    private final String message;
    
    MainMenuOptions(String message) {
        this.message = message;
    }
    
    public String getMessage() {
        return message;
    }
    
    public static List<String> asListString() {
        return Arrays.stream(MainMenuOptions.values())
                .map(MainMenuOptions::getMessage)
                .collect(Collectors.toList());
    }
}
Run Code Online (Sandbox Code Playgroud)

主机选择方法选项

public enum HostSelectionMethodOptions {
    
    FIND_ALL("Find all"),
    FIND_BY_LASTNAME_PREFIX("Find by last name prefix"),
    FIND_BY_CITY_STATE("Find by city & state");
    
    String message;
    
    HostSelectionMethod(String message) {
        this.message = message;
    }
    
    public String getMessage() {
        return …
Run Code Online (Sandbox Code Playgroud)

java methods enums field dry

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

在 Julia 中创建一个同时返回两个值的生成器

给定一个生成器:

\n
myVec1 = rand(0:4, 2)\nmyVec2 = rand(0:4, 8)\n\nmyGen = (val1 + val2 for val1 in myVec1, val2 in myVec2)\n
Run Code Online (Sandbox Code Playgroud)\n

这基本上是一个有 2 列的矩阵。通过使用可以看出collect(myGen)

\n

如何创建一个每次调用生成两个值(基本上是一列)的生成器?

\n

从概念上讲,相当于:

\n
for myCol in eachcol(collect(myGen))\n    @show myCol;\nend\n
Run Code Online (Sandbox Code Playgroud)\n

只是没有对矩阵进行任何显式分配。

\n

我可以myGen针对以下情况进行包装吗:

\n
for value1, value2 in myGen\n  dosomethingelse1(value1, value2)\nend\n
Run Code Online (Sandbox Code Playgroud)\n

换句话说,我正在寻找一种方法来创建一个生成器,它一次返回 2 个(或更多?)连续值,并且可以在循环中使用它来执行此操作。

\n

所以基本上,我们在生成器中创建一个二维数组,我想立即访问整个切片。我可以使用实际数组来完成它eachcoleachrow但是生成器呢?

\n

这是一个测试用例:

\n
myVec1 = rand(0:4, 2);\nmyVec2 = rand(0:4, 800);\n\n@btime begin\n    myMat = [val1 + val2 for val1 in …
Run Code Online (Sandbox Code Playgroud)

generator julia

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