【问题标题】:Extract/decode CSS from HTML into Python从 HTML 中提取/解码 CSS 到 Python
【发布时间】:2015-09-09 14:13:28
【问题描述】:

大家下午好。

我目前正在解析这个网站:http://uk.easyroommate.com/results-room/loc/981238/pag/1

我想获取每个广告的每个网址的列表。然而,这个清单是用 JavaScript 编码的。我可以通过 Firefox firebug 完美地看到它们,但我还没有找到任何通过 Python 获取它们的方法。我认为这是可行的,但我不知道如何。

编辑:显然我已经尝试过像 BeautifulSoup 这样的模块,但由于它是一个 JavaScript 生成的页面,它完全没用。

提前感谢您的帮助。

【问题讨论】:

  • 欢迎来到 Stackoverlfow!如果您包括您的输入、您尝试过的内容、您的预期输出与您的实际输出以及您收到的任何错误的完整堆栈跟踪,您将大大增加获得问题答案的机会。你也可以阅读this guide
  • 感谢您阅读我的问题和指导。但是,我现在面临一个全新的问题,我期待一些线索或 q ......我不会在指南中找到。还是谢谢。
  • 在您的问题得到改善之前,很难为您提供帮助。 dvert 是什么?它是如何用 CSS 编码的? CSS 不是一种编程语言,不太可能通过 CSS 添加内容。一旦你有了这些数据,你想做什么?您需要什么格式?我们不像您那么熟悉您的问题,我们会在为您提供帮助之前了解所有细节。
  • 谢谢。抱歉没有像我应该的那样清楚。所有的广告 url 都是通过一段最可能是 javascript 或 CSS 的代码给出的(我不是编程专家,尤其是网站方面的专家)。我需要一个可以提取这些 url 的模块/密钥/技巧,然后我可以通过 urllib 和 BeautifulSoup 使用它们,并访问网页上单独描述每个广告的所有信息。但首先我需要来自“首页”的那些网址。我只需要它们在一个 unicode 变量中。然后我会通过它。你现在能帮我更好吗?谢谢!

标签: javascript python html


【解决方案1】:

广告列表由JavaScript 生成。 BeautifulSoup 给你这个例子:

<ul class="search-results" data-bind="template: { name: 'room-template', foreach: $root.resultsViewModel.Results, as: 'resultItem' }"></ul>

我建议查看:Getting html source when some html is generated by javascriptPython Scraping JavaScript using Selenium and Beautiful Soup

【讨论】:

  • 谢谢。我去看看。
【解决方案2】:

感谢您的领导,这是解决方案,我希望有一天它会对某人有所帮助:

from selenium import webdriver  
from bs4 import BeautifulSoup

browser = webdriver.Firefox()  
browser.get('http://uk.easyroommate.com/results-room/loc/981238/pag/1')  
html_source = browser.page_source  
browser.quit()

soup = BeautifulSoup(html_source,'html.parser')  
print soup.prettify()
## You are now able to see the HTML generated by javascript code and you 
## can extract it as usual using BeautifulSoup

for el in soup.findAll('div', class_="listing-meta listing-meta--small"):
    print el.find('a').get('href')

在我的例子中,我只是想提取这些链接,但是一旦你通过 Selenium 获得了网页源代码,使用 beautifulSoup 并获得你想要的每一个项目都是小菜一碟。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-11
    • 2011-04-04
    • 2013-08-04
    相关资源
    最近更新 更多