我正在尝试在python中创建一个简单的脚本,它将扫描推文以获取链接,然后访问该链接。 我无法确定从这里开始的方向。根据我的研究,似乎我可以使用Selenium或Mechanize?哪个可用于浏览器自动化。使用这些会被视为网络抓取吗?
或者
我可以学习一个twitter apis,Requests库和睡衣(将python代码转换为javascript),这样我就可以创建一个简单的脚本并将其加载到google chrome / firefox扩展中。
哪种方式更好?
答案 0 :(得分:1)
进行Web自动化时,有许多不同的方法。既然您正在使用Twitter,那么您可以尝试使用Twitter API。如果您正在执行任何其他任务,则有更多选项。
Selenium
非常有用。唯一的缺点是它会打开一个单独的浏览器窗口。
Mechanize
不会打开浏览器窗口,也适合操作按钮和表单。可能还需要几行才能完成工作。
Urllib
/ Urllib2
。有些人一开始觉得有点困难,但是一旦你知道自己在做什么,就会很快完成任务。此外,您可以使用cookie和代理进行操作。它是一个内置库,因此无需下载任何内容。
Requests
和urllib
一样好,但我没有很多经验。你可以做一些事情,比如添加标题。这是一个非常好的图书馆。
获得所需页面后,我建议您使用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 ^_^