用Python抓取数据时丢失数据?

2024-04-20 01:36:00 发布

您现在位置:Python中文网/ 问答频道 /正文

更新(4/10/2018): 所以我发现我的问题是源代码中没有这些信息,这意味着我必须使用Selenium。你知道吗

更新:
我对这个问题多做了些研究。我所做的是运行soup,我只是把pageH解码成一个字符串,然后用它生成一个文本文件,我发现{{optionTitle}}或{priceFormat(showPrice,会话.货币)}}'来自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,会话.货币)}}'. 在我使用pageH = urllib.request.urlopen()获得url之后,给出这个结果的代码是:

pageS = soup(pageH, "html.parser")
pageB = pageS.body
names = pageB.findAll("h4")
optionTitle = names[3].get_text()
optionPrice = names[5].get_text()

因为这不起作用,我试着用一种不同的方式来处理它,并寻找更具体的标记,但是重要的代码部分没有显示出来。它完全消失了。有什么我可以做得到具体的名称/价格或这是一个安全措施,我不能通过工作?你知道吗


Tags: info名称信息names地方货币价格location
1条回答
网友
1楼 · 发布于 2024-04-20 01:36:00

{{}}语法看起来像是有角度的。尝试Requests-HTML进行渲染(使用render()),然后获取内容。示例如下:

from requests_html import HTMLSession
session = HTMLSession()
r = session.get('http://python-requests.org/')
r.html.render()
r.html.search('Python 2 will retire in only {months} months!')['months']

'<time>25</time>'

相关问题 更多 >