我一直在使用正则表达式在PHP中进行一些HTML抓取.这有效,但结果是挑剔和脆弱.有没有人使用任何提供更强大解决方案的软件包?配置驱动的解决方案是理想的,但我不挑剔.
我正在寻找一个用于网页抓取的优秀C++库.
它必须是C/C++而不是其他所以请不要指导我选择HTML抓取或其他SO问题/答案,其中甚至没有提到C++.
当使用python对网页进行屏幕抓取时,必须知道页面的字符编码.如果你得到的字符编码错误,你的输出就会搞砸了.
人们通常使用一些基本技术来检测编码.它们使用标题中的字符集或元标记中定义的字符集,或者使用编码检测器(不关心元标记或标题).通过仅使用这些技术,有时您将无法获得与浏览器相同的结果.
浏览器这样做:
(嗯......至少这是我认为大多数浏览器都这样做的方式.文档非常缺乏.)
我正在寻找的是一个可以像浏览器一样决定页面字符集的库.我确信我不是第一个需要妥善解决这个问题的人.
美丽的汤按优先级顺序尝试以下编码,将您的文档转换为Unicode:
是否有PHP类/库允许我使用CSS选择器查询XHTML文档?如果我能以某种方式使用CSS选择器(jQuery已经破坏了我!),我需要抓取一些页面以获取非常容易访问的数据.有任何想法吗?
这可能是难以回答的问题之一,但这里有:
我不认为我的自编程员 - 但我想:-)我已经学会了R,因为我厌倦了spss,而且因为一位朋友向我介绍了这种语言 - 所以我不是一个完全陌生的人编程逻辑.
现在我想学习python - 主要是做屏幕抓取和文本分析,还用于用Pylons或Django编写webapps.
那么:我应该如何学习使用python进行屏幕刮擦?我开始经历那些杂乱无章的文档,但我觉得很多"魔术"正在进行 - 毕竟 - 我正在努力学习,而不仅仅是做.
另一方面:没有理由重新发明轮子,如果Scrapy要屏蔽Django对网页的影响,那么毕竟值得直接进入Scrapy.你怎么看?
哦 - 顺便说一句:屏幕抓取的那种:我想要报道网站(即相当复杂和大的)来提及政治家等等 - 这意味着我需要每天,递增和递归地刮 - 我需要记录结果进入各种各样的数据库 - 这引出了一个奖励问题:每个人都在谈论非SQL数据库.我是否应该立即学会使用例如mongoDB(我认为我不需要强烈的一致性),或者我想做什么是愚蠢的?
感谢您的任何想法 - 如果这是一般被认为是一个编程问题,我道歉.
我是Tor的新手,我觉得应该考虑多个Tors.我在这里提到的多个实例不仅是多个实例,而且还为每个实例使用不同的代理端口,就像这里所做的那样 http://www.howtoforge.com/ultimate-security-proxy-with-tor)
我正在努力开始使用4个Tors.但是,本教程仅适用于Arch Linux,而我使用的是无头EC2 ubuntu 64位.通过Arch和Ubuntu之间的差异真的很痛苦.在这里,我想知道是否有人可以提供一些帮助,以明确地实现我的想法.
四个Tors同时运行,每个都有一个单独的端口,privoxy或polipo或一旦它工作正常.喜欢:8118 < - Privoxy < - TOR < - 9050 8129 < - Privoxy < - TOR < - 9150 8230 < - Privoxy < - TOR < - 9250 8321 < - Privoxy < - TOR < - 9350
这样,如果我尝试返回127.0.0.1:8118,8129,8230和8321的ip,它们应该返回四个不同的ips,这表示有四个不同的Tors同时运行.然后,几分钟后,再次检查,他们四个应该再次有一个新的ips.
我知道我的简单"梦想"可以在很多方面实现,但是......我不仅是Tor的新手,而且也是bash和python的新手...这就是为什么我来到这里看看你们中的一些人是否可以点亮我起来
这些链接可能很有用:
http://blog.databigbang.com/distributed-scraping-with-multiple-tor-circuits/ https://www.torservers.net/wiki/setup/server#multiple_tor_processes Best,
顺便说一句,如果我跑,
$ ps -A | grep 'tor'
我有几个实例,但有"?" 在tty栏下,这意味着什么,因为我知道tty意味着终端?
是否有一个好的测试套件或工具集可以自动化网站导航 - 使用Javascript支持 - 并从页面收集HTML?
当然,我可以使用BeautifulSoup直接删除HTML.但这对我需要Javascript的网站没有好处.:)
我试图使用python中的selenium用javascript抓取一些动态页面.但是,在我按照pypi页面上的selenium指令(http://pypi.python.org/pypi/selenium)后,我无法调用firefox.我在AWS ubuntu 12.04上安装了firefox.我得到的错误信息是:
In [1]: from selenium import webdriver
In [2]: br = webdriver.Firefox()
---------------------------------------------------------------------------
WebDriverException Traceback (most recent call last)
/home/ubuntu/<ipython-input-2-d6a5d754ea44> in <module>()
----> 1 br = webdriver.Firefox()
/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.pyc in __init__(self, firefox_profile, firefox_binary, timeout)
49 RemoteWebDriver.__init__(self,
50 command_executor=ExtensionConnection("127.0.0.1", self.profile,
---> 51 self.binary, timeout),
52 desired_capabilities=DesiredCapabilities.FIREFOX)
53
/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/extension_connection.pyc in __init__(self, host, firefox_profile, firefox_binary, timeout)
45 self.profile.add_extension()
46
---> 47 self.binary.launch_browser(self.profile)
48 _URL = "http://%s:%d/hub" % (HOST, PORT)
49 RemoteConnection.__init__(
/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.pyc in launch_browser(self, profile)
42
43 self._start_from_profile_path(self.profile.path)
---> 44 self._wait_until_connectable()
45 …Run Code Online (Sandbox Code Playgroud) python selenium screen-scraping amazon-web-services web-scraping
screen-scraping ×10
python ×3
php ×2
animated-gif ×1
c++ ×1
html ×1
javascript ×1
linux ×1
lxml ×1
proxy ×1
record ×1
scrapy ×1
selenium ×1
socks ×1
tor ×1
urllib ×1
urllib2 ×1
web-scraping ×1