标签: screen-scraping

HTML中的HTML Scraping

我一直在使用正则表达式在PHP中进行一些HTML抓取.这有效,但结果是挑剔和脆弱.有没有人使用任何提供更强大解决方案的软件包?配置驱动的解决方案是理想的,但我不挑剔.

html php screen-scraping

36
推荐指数
4
解决办法
4万
查看次数

Web抓取选项 - 仅限C++版本

我正在寻找一个用于网页抓取的优秀C++库.
必须是C/C++而不是其他所以请不要指导我选择HTML抓取或其他SO问题/答案,其中甚至没有提到C++.

c++ screen-scraping

34
推荐指数
2
解决办法
3万
查看次数

如何在python中下载任何(!)网页和正确的字符集?

问题

当使用python对网页进行屏幕抓取时,必须知道页面的字符编码.如果你得到的字符编码错误,你的输出就会搞砸了.

人们通常使用一些基本技术来检测编码.它们使用标题中的字符集或元标记中定义的字符集,或者使用编码检测器(不关心元标记或标题).通过仅使用这些技术,有时您将无法获得与浏览器相同的结果.

浏览器这样做:

  • 元标记始终优先(或xml定义)
  • 当元标记中没有定义字符集时,将使用标头中定义的编码
  • 如果根本没有定义编码,那么就是编码检测的时间.

(嗯......至少这是我认为大多数浏览器都这样做的方式.文档非常缺乏.)

我正在寻找的是一个可以像浏览器一样决定页面字符集的库.我确信我不是第一个需要妥善解决这个问题的人.

解决方案(我还没试过......)

根据Beautiful Soup的文档.

美丽的汤按优先级顺序尝试以下编码,将您的文档转换为Unicode:

  • 作为fromEncoding参数传递给汤构造函数的编码.
  • 在文档本身中发现的编码:例如,在XML声明中或(对于HTML文档)的http-equiv META标记.如果Beautiful Soup在文档中找到这种编码,它会从头开始再次解析文档并尝试新编码.唯一的例外是如果您明确指定了编码,并且该编码实际上有效:那么它将忽略它在文档中找到的任何编码.
  • 通过查看文件的前几个字节来嗅探编码.如果在此阶段检测到编码,则它将是UTF-*编码,EBCDIC或ASCII之一.
  • 如果安装了chardet库,则会对其进行嗅探.
  • UTF-8
  • Windows的1252

python screen-scraping urllib urllib2 character-encoding

34
推荐指数
3
解决办法
1万
查看次数

PHP CSS选择器库?

是否有PHP类/库允许我使用CSS选择器查询XHTML文档?如果我能以某种方式使用CSS选择器(jQuery已经破坏了我!),我需要抓取一些页面以获取非常容易访问的数据.有任何想法吗?

php screen-scraping css-selectors

31
推荐指数
5
解决办法
2万
查看次数

初学者通过Python学习屏幕抓取的最佳方式

这可能是难以回答的问题之一,但这里有:

我不认为我的自编程员 - 但我想:-)我已经学会了R,因为我厌倦了spss,而且因为一位朋友向我介绍了这种语言 - 所以我不是一个完全陌生的人编程逻辑.

现在我想学习python - 主要是做屏幕抓取和文本分析,还用于用Pylons或Django编写webapps.

那么:我应该如何学习使用python进行屏幕刮擦?我开始经历那些杂乱无章的文档,但我觉得很多"魔术"正在进行 - 毕竟 - 我正在努力学习,而不仅仅是做.

另一方面:没有理由重新发明轮子,如果Scrapy要屏蔽Django对网页的影响,那么毕竟值得直接进入Scrapy.你怎么看?

哦 - 顺便说一句:屏幕抓取的那种:我想要报道网站(即相当复杂和大的)来提及政治家等等 - 这意味着我需要每天,递增和递归地刮 - 我需要记录结果进入各种各样的数据库 - 这引出了一个奖励问题:每个人都在谈论非SQL数据库.我是否应该立即学会使用例如mongoDB(我认为我不需要强烈的一致性),或者我想做什么是愚蠢的?

感谢您的任何想法 - 如果这是一般被认为是一个编程问题,我道歉.

python lxml screen-scraping beautifulsoup scrapy

31
推荐指数
2
解决办法
2万
查看次数

如何使用不同的退出IP一次运行多个Tor进程?

我是Tor的新手,我觉得应该考虑多个Tors.我在这里提到的多个实例不仅是多个实例,而且还为每个实例使用不同的代理端口,就像这里所做的那样 http://www.howtoforge.com/ultimate-security-proxy-with-tor)

我正在努力开始使用4个Tors.但是,本教程仅适用于Arch Linux,而我使用的是无头EC2 ubuntu 64位.通过Arch和Ubuntu之间的差异真的很痛苦.在这里,我想知道是否有人可以提供一些帮助,以明确地实现我的想法.

  1. 四个Tors同时运行,每个都有一个单独的端口,privoxy或polipo或一旦它工作正常.喜欢:8118 < - Privoxy < - TOR < - 9050 8129 < - Privoxy < - TOR < - 9150 8230 < - Privoxy < - TOR < - 9250 8321 < - Privoxy < - TOR < - 9350

  2. 这样,如果我尝试返回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意味着终端?

linux proxy screen-scraping tor socks

31
推荐指数
2
解决办法
2万
查看次数

防止屏幕刮擦

关于屏幕抓取合法性的问题,即使是非法的人仍然会尝试,所以:

可以采用哪些技术机制来防止或至少抑制屏幕抓取?

哦,只是为了咧嘴笑,让生活变得困难,保留搜索引擎的访问权限可能会很好.我很可能在这里扮演魔鬼的拥护者,但有一个严重的基础点.

screen-scraping

30
推荐指数
5
解决办法
2万
查看次数

使用Javascript支持筛选屏幕的好工具是什么?

是否有一个好的测试套件或工具集可以自动化网站导航 - 使用Javascript支持 - 并从页面收集HTML?

当然,我可以使用BeautifulSoup直接删除HTML.但这对我需要Javascript的网站没有好处.:)

javascript screen-scraping

29
推荐指数
2
解决办法
2万
查看次数

28
推荐指数
2
解决办法
4万
查看次数

无法在AWS机器上的python中从selenium调用firefox

我试图使用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

28
推荐指数
1
解决办法
2万
查看次数