我正在努力搜索的网站主页显示了四个标签,其中一个标签上写着“[数字]可用工作”。我对刮取[Number]值感兴趣。当我在Chrome中检查页面时,我可以看到包含在<span>
标记中的值。你知道吗
但是,当我直接查看页面源代码时,<span>
标记中没有任何内容。我计划使用Pythonrequests
模块发出httpget请求,然后使用regex从返回的内容中捕获值。如果内容不包含我需要的数字,这显然是不可能的。你知道吗
我的问题是:
这里发生了什么?如何将值动态加载到 页面,显示,然后不出现在HTML源代码中?
如果该值没有出现在页面源代码中,我可以怎么做 够到了吗?
如果内容没有出现在页面源代码中,那么它可能是使用javascript生成的。例如,站点可能有一个列出作业的restapi,Javascript代码可以从API请求作业,并使用它在DOM中创建节点并将其附加到可用作业。这只是一种可能性。你知道吗
消除这些信息的一种方法是弄清楚javascript是如何工作的,并让python scraper做同样的事情(例如,如果它使用的是一个简单的restapi,那么您只需要向相同的URL发出请求)。通常这并不是那么容易,所以另一种选择是使用支持javascript的浏览器(如selenium)进行刮取。你知道吗
最后一件事我想提到的是that regular expressions are a fragile way to parse HTML,您通常应该更喜欢使用像BeautifulSoup这样的库。你知道吗
1.一个值可以用ajax动态加载,ajax异步加载这意味着站点的其余部分不会等待ajax被呈现,这就是为什么当您获得DOM时,用ajax加载的元素不会出现在其中。你知道吗
2.对于动态内容,应该使用selenium,here a tutorial
相关问题 更多 >
编程相关推荐