2

可能重复:
我应该从哪里开始使用 python 制作刮板或机器人?

我知道这显然是可能的......我被要求实现某种机器人,它可以访问网站、登录、访问一组链接、填写带有日期输入的搜索表单以获取 XLS 文件并注销。如果手动完成,整个过程几乎需要一个小时,所以脚本/机器人可以为我们节省大量时间。

想法?图书馆?我想我需要 urllib?
或者可能根本不使用 Python?
提前致谢!

编辑:我搜索了相当多的“python 爬虫”,直到评论之前才发现 Mechanize 或 Scrapy:/
我将首先进一步研究 Mechanize。谢谢。

4

2 回答 2

3

我是斜纹python 模块的粉丝。这是我不久前用来进行基本浏览和抓取的代码的一小部分示例。

import twill
import twill.commands as c

def login():
    c.clear_cookies()
    c.go('http://icfpcontest.org/icfp10/login')
    c.fv(1, 'j_username', 'Side Effects May Include...')
    c.fv(1, 'j_password', '<redacted>')
    c.submit()
    c.save_cookies('/tmp/icfp.cookie')

all_cars_rx = re.compile(r'<td style="width: 20%;">(\d+)</td><td>(\d+)</td>')
def list_cars():
    c.go('http://icfpcontest.org/icfp10/score/instanceTeamCount')
    cars = re.findall(all_cars_rx, c.show())
    if not cars:
        sys.stderr.write(c.show())
        sys.stderr.write('Could not find any cars')
    return cars;

值得一提的是,应该使用正则表达式来解析 HTML。你这里有一个肮脏的黑客,它是在很短的时间表上为 ICFP 完成的。

于 2011-04-04T20:58:32.837 回答
0

最近我发现了PhantomJS并将其用于类似的任务。它是命令行 JavaScript 解释器,内置了功能齐全的 Webkit 引擎。恕我直言,对于像您这样的任务来说,它确实是一款易于使用的工具,并且您拥有使用 Firebug 所说的各种可编写脚本的功能。它还具有用于截取屏幕截图并将其保存到图像文件的内置调用。

于 2011-04-04T22:16:28.550 回答