Python 3.7 urllib.request 重新使用 &nbsp 而不是内容

Posted

技术标签:

【中文标题】Python 3.7 urllib.request 重新使用 &nbsp 而不是内容【英文标题】:Python 3.7 urllib.request reurns &nbsp instead of content 【发布时间】:2019-05-03 00:26:19 【问题描述】:

所以我编写了一个代码,可以读取和打印 html 代码中指定文本之间的所有内容,例如,读取段落之间的所有内容 - 这会被打印出来。 这是来自 sentdex 课程 - here

代码没有问题,而是出现的问题。 我用非常具体的标准过滤了

paragraphs = re.findall(r'<div style="font-size: 23px; margin-top: 20px;" class="jsdfx-sentiment-present">(.*?)</div>',str(respData))

如前所述,它有效。稍后打印内容并打印 &nbsp .据我了解,这是 HTML 中的非制动空间。我希望看到数字而不是空间。在这个网站上,这个位置的数字每隔几秒就会更新一次。

我怎样才能得到这些数字而不是接收 &nbsp?

问候!

【问题讨论】:

【参考方案1】:

这取决于您下载页面的具体方式以及从何处下载,但因为您说在网络浏览器中查看该值时该值会不断变化,所以我敢打赌,当您下载该页面时,@987654322 @ 正是该 div 内部的内容 - 页面在您实际查看页面时通过 javascript 或其他方式即时更改它。您的教程使用静态标记,每次加载页面时都使用相同的标记,而不是在页面已经处于活动状态后动态设置的标记。

在 Web 开发中为动态值执行此操作相当常见 - 将占位符值放在 div 中,然后根据需要动态编辑内容。当然,如果您只是拍摄页面的快照(甚至更重要的是,如果您在 javascript 代码之前拍摄该快照,并且填充该值的其他东西有机会运行),您将不会看到更改, 得到的只是默认值,没有填写数字。

根据您链接的教程,您可能正在使用urllib。如果您想从 HTML 页面获取动态内容,那可能不是最好的工具 - 您应该查看 seleniumBeautifulSoup。 This *** Answer 详细介绍了该问题的有效解决方案。

【讨论】:

谢谢你,感谢你如此深入地回答:)

以上是关于Python 3.7 urllib.request 重新使用 &nbsp 而不是内容的主要内容,如果未能解决你的问题,请参考以下文章

Python 3.7 urllib.request 重新使用 &nbsp 而不是内容

Python Spider - urllib.request

python中urllib.request对象案例

爬虫小探-Python3 urllib.request获取页面数据

Python 3.5 urllib.request 403 禁止错误

urllib.request.Request