标签: web-scraping

如何从Python调用Javascript函数?

我正在开展网络抓取项目.我正在使用的其中一个网站的数据来自Javascript.

我之前的一个问题有一个建议,我可以直接从Python调用Javascript,但我不知道如何实现这一点.

例如:如果JavaScript函数定义为: add_2(var,var2)

我如何从Python调用该JavaScript函数?

javascript python web-scraping

32
推荐指数
3
解决办法
7万
查看次数

通过单击按钮刮取网页并导航

我想在服务器端执行以下操作:

1)刮取网页
2)模拟该页面上的点击,然后导航到新页面.
3)刮掉新页面
4)模拟新页面上的一些按钮点击
5)通过json或其他东西将数据发送回客户端

我正在考虑将它与Node.js一起使用.

但我很困惑我应该使用哪个模块
a)Zombie
b)Node.io
c)Phantomjs
d)JSDOM
e)其他

我已经安装了node,io但是无法通过命令提示符运行它.

PS:我在Windows 2008服务器上工作

node.js web-scraping zombie.js jsdom phantomjs

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

Html敏捷包.加载和抓取网页

这是抓取时获取网页的最佳方式吗?

HttpWebRequest oReq = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse resp = (HttpWebResponse)oReq.GetResponse();

var doc = new HtmlAgilityPack.HtmlDocument();

doc.Load(resp.GetResponseStream());
var element = doc.GetElementbyId("//start-left");
var element2 = doc.DocumentNode.SelectSingleNode("//body");
string html = doc.DocumentNode.OuterHtml;
Run Code Online (Sandbox Code Playgroud)

我已经看到HtmlWeb().Load了一个网页.这是一个更好的替代加载和刮网页?


好的,我会试试.

HtmlDocument doc = web.Load(url);
Run Code Online (Sandbox Code Playgroud)

现在,当我得到我的doc,并没有得到如此mutch属性.没有人喜欢SelectSingleNode.我唯一可以使用的是GetElementById,但这有效但我想上课.

我需要这样做吗?

var htmlBody = doc.DocumentNode.SelectSingleNode("//body");
htmlBody.SelectSingleNode("//paging");
Run Code Online (Sandbox Code Playgroud)

c# web-scraping html-agility-pack

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

点击python中的selenium链接

我正在尝试通过Selenium做一些webscraping.我的问题很简单:你如何找到一个链接然后如何点击它?例如:以下是我尝试网络抓取的HTML:

<td bgcolor="#E7EFF9">
  <a href="javascript:selectDodasaDetdasdasy(220011643,'Kdasdas?');" target="_self">
   Details
  </a>
</td>
Run Code Online (Sandbox Code Playgroud)

所以,你可以看到"细节"这个词是一个链接.

如何使用Selenium找到该链接并单击它?

python web-scraping python-2.7 python-3.x selenium-webdriver

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

使用BeautifulSoup和Python获取元标记内容属性

我正在尝试使用python和美丽的汤来提取下面标签的内容部分:

<meta property="og:title" content="Super Fun Event 1" />
<meta property="og:url" content="http://superfunevents.com/events/super-fun-event-1/" />
Run Code Online (Sandbox Code Playgroud)

我正在使用BeautifulSoup来加载页面并找到其他东西(这也从源代码中隐藏的id标签中获取文章id),但我不知道正确的方法来搜索html并找到这些位,我尝试过find和findAll的变种无济于事.代码迭代目前的网址列表...

#!/usr/bin/env python
# -*- coding: utf-8 -*-

#importing the libraries
from urllib import urlopen
from bs4 import BeautifulSoup

def get_data(page_no):
    webpage = urlopen('http://superfunevents.com/?p=' + str(i)).read()
    soup = BeautifulSoup(webpage, "lxml")
    for tag in soup.find_all("article") :
        id = tag.get('id')
        print id
# the hard part that doesn't work - I know this example is well off the mark!        
    title = soup.find("og:title", "content")
    print (title.get_text())
    url = soup.find("og:url", "content")
    print …
Run Code Online (Sandbox Code Playgroud)

html python beautifulsoup web-scraping

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

我需要一个强大的Web Scraper库

我需要一个强大的Web scraper库来从web挖掘内容.可以支付或免费两者对我来说都没问题.请建议我使用库或更好的方法来挖掘数据并存储在我的首选数据库中.我搜索过,但我没有找到任何好的解决方案.我需要专家的好建议.请帮帮我.

.net c# web-crawler web-scraping

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

如何使用Beautiful Soup查找带有特定文本的标签?

我有以下html(标记为\n的换行符):

...
<tr>
  <td class="pos">\n
      "Some text:"\n
      <br>\n
      <strong>some value</strong>\n
  </td>
</tr>
<tr>
  <td class="pos">\n
      "Fixed text:"\n
      <br>\n
      <strong>text I am looking for</strong>\n
  </td>
</tr>
<tr>
  <td class="pos">\n
      "Some other text:"\n
      <br>\n
      <strong>some other value</strong>\n
  </td>
</tr>
...
Run Code Online (Sandbox Code Playgroud)

如何找到要找的文字?下面的代码返回第一个找到的值,所以我需要以某种方式过滤固定文本.

result = soup.find('td', {'class' :'pos'}).find('strong').text
Run Code Online (Sandbox Code Playgroud)

更新.如果我使用以下代码:

title = soup.find('td', text = re.compile(ur'Fixed text:(.*)', re.DOTALL), attrs = {'class': 'pos'})
self.response.out.write(str(title.string).decode('utf8'))
Run Code Online (Sandbox Code Playgroud)

然后它返回固定文本:.

html python beautifulsoup web-scraping

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

无法在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万
查看次数

使用无头浏览器进行Android Web Scraping

我花了一天时间研究一个可以用来完成以下工作的库:

  • 像在后台中一样检索网页的完整内容,而不将结果呈现给视图.
  • 例如,lib应该支持在初始HTML加载之后触发ajax请求以加载一些额外结果数据的页面.
  • 从生成的html我需要抓取xpath或css选择器表单中的元素.
  • 将来我也可能需要导航到下一页(关闭事件,提交按钮/链接等)

这是我没有成功的尝试:

  • Jsoup:效果不错但不支持javascript/ajax(所以它不加载整页)
  • 在HttpEntity内置的Android:js/ajax与jsoup相同的问题
  • HtmlUnit:看起来正是我需要的东西,但是几小时后无法让它在Android上工作(其他用户通过尝试加载12MB +值的jar文件而失败.我自己加载了完整的源代码并将其作为项目库引用只是为了找到它诸如Applets和java.awt(由HtmlUnit使用)之类的东西在Android中不存在.
  • 犀牛 - 我发现这非常混乱,不知道如何让它在Android中工作,即使它是我正在寻找的.
  • Selenium驱动程序:看起来它可以工作但你没有一种直接的方式以无头的方式实现它,所以你没有显示到视图的实际html.

我真的希望HtmlUnit工作,因为它似乎最适合我的解决方案.是否有任何方式或至少另一个我错过的图书馆适合我的需求?

我目前正在使用Android Studio 0.1.7,如果需要可以移动到Ellipse.

提前致谢!

java selenium android htmlunit web-scraping

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

是否允许网页抓取?

我正在开发一个需要来自其他网站的某些统计数据的项目,并且我已经创建了一个HTML scraper,可以每15分钟自动获取一次这些数据.但是,我现在停止了机器人,就像他们的使用条款一样,他们提到他们不允许它.

我真的很想尊重这一点,特别是如果有法律禁止我接受这些数据,但我已经多次通过电子邮件与他们联系而没有一个答案,所以现在我得出的结论是,我只是简单地说抓住数据,如果它是合法的.

在某些论坛上,我已经读到它是合法的,但我更愿意在StackOverflow上获得更"精确"的答案.

让我们说这实际上并不违法,他们是否有任何软件可以发现我的机器人每隔15分钟建立几个连接?

此外,在谈论获取他们的数据时,我们正在讨论每个"团队"的单个号码,而这个号码我将转移到我们自己的号码.

web-scraping

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