我已经四处寻找并且只找到了python 2.6及更早版本的解决方案,没有关于如何在python 3.X中执行此操作.(我只能访问Win7盒子.)
我必须能够在3.1中执行此操作,并且最好不使用外部库.目前,我安装了httplib2并访问命令提示符curl(这就是我获取页面源代码的方式).不幸的是,curl不解码html实体,据我所知,我找不到在文档中解码它的命令.
是的,我试图让美丽的汤工作,很多时候没有成功3.X. 如果您可以在MS Windows环境中提供有关如何在python 3中使用它的EXPLICIT说明,我将非常感激.
所以,要清楚,我需要将这样Suzy & John的字符串转换成这样的字符串:"Suzy&John".
我正在尝试解析单个字符串,并从具有相同正则表达式条件的相同字符串中获取多个数据块.我正在解析一个静态的HTML文档(由于未公开的原因,我不能使用HTML解析器来完成这项工作.)我有一个表达式,如下所示:
$string =~ /\<img\ssrc\="(.*)"/;
Run Code Online (Sandbox Code Playgroud)
我希望得到1美元的价值.但是,在一个字符串中,有很多这样的img标签,所以我需要像返回的数组(@ 1?)这样可能吗?
我只需要获取一个https页面,我正在使用curl当前在我的Path中使用curl.exe应用程序并使用Perl文件调用它.但是,我收到错误"*libcurl中不支持或禁用协议https".我一直在四处寻找,我找不到一套可靠的指令来让它发挥作用.我已经安装了cygwin和OpenSSL-Win32,但有些东西告诉我,我将不得不从头开始编译curl.我没有这方面的经验.你怎么做呢?
我有兴趣充实Android手机应用程序的想法,我想知道这是否可行.所以我希望应用程序在手机A的后台运行,然后当它找到另一个Android手机B时,它会保存某些信息,如时间,GPS位置,只是状态变量.
但如果另一部手机也运行相同的应用程序,这两部手机将连接并共享琐碎的非私人信息.
假设,这可能吗?我会通过本地ad-hoc Wi-Fi连接,还是经常播放蓝牙?
我在使用BerkeleyDB时遇到了一些问题.我有多个相同代码的实例指向一个DB文件的存储库,一切运行正常5-32小时,然后突然出现死锁.在执行db_get或db_put或游标创建调用之前,该命令会提示停止.所以我只是想问一下处理这些调用的正确方法.这是我的总体布局:
这就是环境和数据库的创建方式:
my $env = new BerkeleyDB::Env (
-Home => "$dbFolder\\" ,
-Flags => DB_CREATE | DB_INIT_CDB | DB_INIT_MPOOL)
or die "cannot open environment: $BerkeleyDB::Error\n";
my $unsortedHash = BerkeleyDB::Hash->new (
-Filename => "$dbFolder/Unsorted.db",
-Flags => DB_CREATE,
-Env => $env
) or die "couldn't create: $!, $BerkeleyDB::Error.\n";
Run Code Online (Sandbox Code Playgroud)
运行此代码的单个实例,转到站点并保存要由另一个实例解析的URL(我设置了标志,以便在锁定一个数据库时锁定每个数据库):
$lk = $unsortedHash->cds_lock();
while(@urlsToAdd){
my $currUrl = shift @urlsToAdd;
$unsortedHash->db_put($currUrl, '0');
}
$lk->cds_unlock();
Run Code Online (Sandbox Code Playgroud)
它会定期检查一定数量的项目是否处于未排序状态:
$refer = $unsortedHash->db_stat();
$elements = $refer->{'hash_ndata'};
Run Code Online (Sandbox Code Playgroud)
在向任何数据库添加任何元素之前,它首先检查所有数据库以查看该元素是否已存在:
if ($unsortedHash->db_get($search, $value) == 0){
$value = "1:$value";
}elsif ($badHash->db_get($search, $value) == …Run Code Online (Sandbox Code Playgroud) 我有严格的警告,但它一直在抱怨下一行的初始化:
$hash{$key} = ($row, [], [], [], '');
Run Code Online (Sandbox Code Playgroud)
它警告这一行:
"Useless use of private variable in void context"
"Useless use of anonymous list ([]) in void context" (3 times)
Run Code Online (Sandbox Code Playgroud)
我将在稍后填充数据,但我希望索引1,2,3是数组引用,索引4是字符串.我正在访问并填充数据,如下所示:
$hash{$key}->[1]->[3] = 'Data';
$hash{$key}->[4] = $hash{$key}->[4] . 'More Data';
Run Code Online (Sandbox Code Playgroud)
显然,我做错了什么,但我不确定如何做对.(另外,我知道最后一行是多余的,这可以用更好的方式总结吗?)
我不清楚从哪里开始.我从未做过任何NLP,只在Python 3.1中编程,我必须使用它.我正在查看网站http://www.linkedin.com,我必须收集所有的公开个人资料,其中一些有非常假的名字,比如'aaaaaa k dudujjek',我被告知我可以使用NLP找到真实姓名,我甚至会在哪里开始?
这可能看起来有点倒退,但我想使用Perl(如果可能的话,使用Curl)从使用Ajax的站点获取数据以填充带有信息的HTML shell.如何进行这些Javascript调用以获取我需要的数据?
该网站位于:http://www.jigsaw.com/showContactUpdateTab.xhtml?companyId = 22424
我安装了Vidalia,设置Chrome使用端口8118作为代理,我通过https://check.torproject.org/检查了我的连接,但是我在使用命令行工具cURL时遇到了困难.这是我尝试的:
C:\>curl -v --proxy localhost::9050 http://google.com
* About to connect() to proxy localhost port 0 (#0)
* Failed to connect to ?: Address not available
* No error
* Trying 127.0.0.1... Failed to connect to 127.0.0.1: Address not available
* No error
* couldn't connect to host
* Closing connection #0
curl: (7) Failed to connect to ?: Address not available
Run Code Online (Sandbox Code Playgroud)
解决了:
curl -v --socks4a localhost:9050 http://check.torproject.org/
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用SQLite数据库和Perl模块来解决问题.最后,我需要记录数以千万计的条目.每个项目唯一的唯一标识符是URL的文本字符串.我想以两种方式做到这一点:
方式#1:有一个好桌子,坏桌子,未分类的桌子.(我需要查看html并确定是否需要它.)假设我们总共有10亿个页面,每个表格中有3.33亿个URL.我有一个要添加的新URL,我需要检查它是否在任何表中,如果它是唯一的,则将其添加到Unsorted.另外,我会用这个选项移动很多行.
方式#2:我有2张桌子,Master和Good.Master拥有全部10亿个页面URL,而Good拥有我想要的3.33亿个页面URL.新的URL,需要做同样的事情,除了这次我只查询一个表,我永远不会从Master中删除一行,只将数据添加到Good.
所以基本上,我需要知道最好的设置,以快速查询一个巨大的SQLite数据库,看看大约20个字符的文本字符串是唯一的,然后添加,如果不是.
编辑:我现在正试图让Berkeley DB使用Perl模块工作,但没有骰子.这就是我所拥有的:
use BerkeleyDB;
$dbFolder = 'C:\somedirectory';
my $env = BerkeleyDB::Env->new ( -Home => $dbFolder );
my $db = BerkeleyDB::Hash->new (
-Filename => "fred.db",
-Env => $env );
my $status = $db->db_put("apple", "red");
Run Code Online (Sandbox Code Playgroud)
当我运行这个时,我得到以下内容:
Can't call method "db_put" on an undefined value at C:\Directory\perlfile.pl line 42, <STDIN> line 1.
Run Code Online (Sandbox Code Playgroud)