【发布时间】:2018-09-16 00:30:57
【问题描述】:
更新(2018 年 4 月 10 日): 所以我发现我的问题是源代码中没有这些信息,这意味着我必须使用 Selenium。
更新:
我更多地解决了这个问题。我所做的是代替或运行汤,我只是将pageH 解码为一个字符串并从中制作一个文本文件,我发现'{{ optionTitle }}' 或'{{priceFormat (showPrice, session.currency)}}' 来自 HTML 文件中单独说明的模板部分。我认为这意味着我只是看错了地方。我仍然不确定,但我是这么认为的。
所以现在我有一个新问题。在查看了文本文件之后,我现在意识到必要的信息甚至不在pageH 中。在它应该给我我正在寻找的信息的地方,它反而说:
<bread-crumbs :location="location" :product-name="product.productName"></bread-crumbs>
<product-info ref="productInfo" :basic="product" :location="location" :prod-info="prodInfo"></product-info>
这是什么意思?/有没有办法通过这个来获取信息?
原始问题:
我正在尝试从网站上收集产品的名称/价格。我不确定数据是否由于 html 解析器或 BeautifulSoup 而丢失,但发生的情况是,一旦我到达我想要的位置,返回的而不是特定名称/价格是 '{ { optionTitle }}' 或 '{{priceFormat (showPrice, session.currency)}}'。在我使用pageH = urllib.request.urlopen() 获取网址后,给出此结果的代码是:
pageS = soup(pageH, "html.parser")
pageB = pageS.body
names = pageB.findAll("h4")
optionTitle = names[3].get_text()
optionPrice = names[5].get_text()
因为这不起作用,我尝试以不同的方式进行并寻找更具体的标签,但重要的代码部分没有显示。它完全消失了。我可以做些什么来获得具体的名称/价格,或者这是我无法解决的安全措施吗?
【问题讨论】:
-
这些双花括号看起来很像 Angular 模板,这可能意味着您需要一个 JavaScript 引擎/浏览器来呈现页面。
标签: python python-3.x web-scraping beautifulsoup urllib