可能重复:
Where shall I start in making a scraper or a bot using python?
我知道这显然是可能的...... 我被要求实施某种机器人访问网站,登录,访问一组链接,填写带有日期输入的搜索表单以获取XLS文件并注销。 如果手动完成这整个考验需要将近一个小时,所以脚本/机器人会为我们节省大量时间。
想法?图书馆?我想我需要urllib?
或者根本不使用Python?
提前谢谢!
编辑:我搜索了很多“python crawler”并且在评论之前没有发现Mechanize或Scrapy:/
我先来看看Mechanize。感谢。
答案 0 :(得分:3)
我是twill 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做的肮脏的黑客攻击。
答案 1 :(得分:0)
最近我发现了PhantomJS并将其用于类似的任务。它是命令行JavaScript解释器,内置了功能齐全的Webkit引擎。恕我直言,它是非常易于使用的工具,适用于像你这样的任务,你可以使用Firebug获得所有类型的脚本功能。此外,它还具有内置调用功能,可以截取屏幕截图并将其保存到图像文件中。