python - omegle lxml 抓取不起作用

标签 python html xpath lxml

所以我正在执行 omegle 抓取,试图抓取在线用户。

这是 HTML 代码:

<div id="onlinecount">
    <strong>    
        30,000+    
    </strong>    
</div>

现在我假设使用 LXML 会 //div[@id="onlinecount"] 来抓取 中的任何文本,我想从标签中获取数字,但是当我尝试抓取这个,结果只是得到一个空列表

这是我的相关代码:

print "\n Grabbing users online now from",self.website
site = requests.get(self.website)
tree = html.fromstring(site.text)
users = tree.xpath('//div[@id="onlinecount"]')

请注意,self.website 变量只是 http://www.omegle.com

你知道我做错了什么吗?请注意,我可以抓取其他部分,但不能抓取在线用户数。

我最终使用了从 friend 那里学到的一组不同的代码。 这是我的完整代码,供感兴趣的人引用。 http://pastebin.com/u1kTLZtJ

最佳答案

当您使用 requests python 模块向“http://www.omegle.com”发送 GET 请求时,我观察到 site.text 中没有“onlinecount”。原因是该部分是由 JavaScript 呈现的。您应该使用能够执行 JavaScript 并为您提供在浏览器中呈现的最终 html 源的库。 Selenium 就是这样的一个第三方库 http://selenium-python.readthedocs.org/ 。唯一的缺点是它打开一个真正的网络浏览器。

下面是使用 selenium 的工作代码和附加的屏幕截图:

from selenium import webdriver
browser = webdriver.Firefox()
browser.get("http://www.omegle.com")
element = browser.find_element_by_id("onlinecount")
onlinecount = element.find_element_by_tag_name("strong")

enter image description here

关于python - omegle lxml 抓取不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20977981/

相关文章:

python - 如何在模板中使用 context_instance

python - 使用 Scrapy 抓取游戏商店时出现问题 - 如果有折扣和处理 null,HTML 会发生变化

javascript - PHP Xpath JS 如何用 JS 从网站获取内容?

android - 使用 Python 在 Appium/Android 上选择一个元素,该元素与 UIAutomatorViewer 上的另一个元素具有相同的类和相同的索引

python - 覆盖第三方模块的方法有多糟糕?

python - 计算一列字符串中的有效整数

mysql - 如何在文本框中限制 '♥♣'个字符

javascript - 超链接图像未显示在 Chrome 扩展程序上

javascript - Div 不随内容扩展

c# - 无法从 xml 文件中获取数据