任何人都可以澄清Python Web自动化的一些选项

时间:2013-07-30 01:39:59

标签: python selenium-webdriver browser-automation pyjamas

我正在尝试在python中创建一个简单的脚本,它将扫描推文以获取链接,然后访问该链接。 我无法确定从这里开始的方向。根据我的研究,似乎我可以使用Selenium或Mechanize?哪个可用于浏览器自动化。使用这些会被视为网络抓取吗?

或者

我可以学习一个twitter apis,Requests库和睡衣(将python代码转换为javascript),这样我就可以创建一个简单的脚本并将其加载到google chrome / firefox扩展中。

哪种方式更好?

4 个答案:

答案 0 :(得分:1)

进行Web自动化时,有许多不同的方法。既然您正在使用Twitter,那么您可以尝试使用Twitter API。如果您正在执行任何其他任务,则有更多选项。

    当您需要单击按钮或在表单中输入值时,
  • Selenium非常有用。唯一的缺点是它会打开一个单独的浏览器窗口。

  • 与Selenium不同,
  • Mechanize不会打开浏览器窗口,也适合操作按钮和表单。可能还需要几行才能完成工作。

  • 我正在使用
  • Urllib / Urllib2。有些人一开始觉得有点困难,但是一旦你知道自己在做什么,就会很快完成任务。此外,您可以使用cookie和代理进行操作。它是一个内置库,因此无需下载任何内容。

  • Requestsurllib一样好,但我没有很多经验。你可以做一些事情,比如添加标题。这是一个非常好的图书馆。

获得所需页面后,我建议您使用BeautifulSoup来解析所需的数据。

我希望这能引导您为Web自动化做正确的方向。

答案 1 :(得分:1)

我不希望网络抓取。但我对Mechanize和Selenium都有一些经验。我认为在你的情况下,Mechanize或Selenium都能很好地满足你的需求,但也花一些时间来研究这些Python库Beautiful Soup,urllib和urlib2。

从我的拙见,我建议你在你的情况下使用Mechanize over Selenium。因为,与Mechanize相比,Selenium的重量不是很轻。 Selenium用于模拟真实的网络浏览器,因此您可以实际执行点击操作'。

Mechanize有一些退缩。当您尝试单击类型按钮输入时,您会发现Mechanize会给您带来困难。 Mechanize也不了解java脚本,所以很多时候我必须模仿java脚本在我自己的python代码中做的事情。

最后建议,如果你以某种方式决定将来选择Selenium而不是Mechanize。使用像PhantomJS这样的无头浏览器而不是Chrome或Firefox来减少Selenium的计算时间。希望这会有所帮助并祝你好运。

答案 2 :(得分:0)

对于网页抓取Scrapy似乎是最好的框架。

它记录完备且易于使用。

答案 3 :(得分:0)

对于

网络自动化:“网络机器人”

网络抓取:“草率”

webbot 甚至适用于具有动态更改的ID和类名的网页,并且比硒和机械化具有更多的方法和功能。

  

这是网络机器人的片段

from webbot import Browser 
web = Browser()
web.go_to('google.com') 
web.click('Sign in')
web.type('mymail@gmail.com' , into='Email')
web.click('NEXT' , tag='span')
web.type('mypassword' , into='Password' , id='passwordFieldId') # specific selection
web.click('NEXT' , tag='span') # you are logged in ^_^