1

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

或者

我可以学习其中一个 twitter api、Requests 库和 pyjamas(将 python 代码转换为 javascript),因此我可以制作一个简单的脚本并将其加载到 google chrome 的/firefox 扩展中。

哪个是更好的选择?

4

4 回答 4

1

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

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

机械化有一些缺点。当您尝试单击类型按钮输入时,您会发现 Mechanize 给您带来困难。Mechanize 也不懂 java 脚本,所以很多时候我不得不模仿 java 脚本在我自己的 python 代码中所做的事情。

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

于 2013-07-30T02:09:25.960 回答
1

进行 Web 自动化时有许多不同的方法。由于您使用 Twitter 做事,您可以尝试 Twitter API。如果您正在执行任何其他任务,还有更多选择。

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

  • Mechanize与 Selenium 不同的是,它不会打开浏览器窗口,并且也适用于操作按钮和表单。可能需要多几行才能完成工作。

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

  • Requests和 一样好urllib,但我没有很多经验。您可以执行添加标题之类的操作。这是一个非常好的图书馆。

一旦你得到你想要的页面,我建议你使用BeautifulSoup来解析出你想要的数据。

我希望这会引导您朝着 Web 自动化的正确方向前进。

于 2013-07-30T01:56:06.907 回答
1

为了

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

网页抓取:“scrapy”

webbot甚至适用于具有动态更改 id 和类名的网页,并且具有比 selenium 和 mechanize 更多的方法和功能。

这是webbot的片段

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 ^_^
于 2018-07-04T09:25:36.807 回答
0

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

它有很好的文档记录并且易于使用。

于 2013-07-30T02:57:18.453 回答