我正在尝试编写一个Python脚本,该脚本将定期检查网站以查看某项是否可用。过去,我已经成功使用了request.get,lxml.html和xpath来自动执行网站搜索。对于此特定URL(http://www.anthropologie.com/anthro/product/4120200892474.jsp?cm_vc=SEARCH_RESULTS#/)和同一网站上的其他URL
,我的代码无法正常工作。
import requests
from lxml import html
page = requests.get("http://www.anthropologie.com/anthro/product/4120200892474.jsp?cm_vc=SEARCH_RESULTS#/")
tree = html.fromstring(page.text)
html_element = tree.xpath(".//div[@class='product-soldout ng-scope']")
在这一点上,html_element应该是一个元素列表(我认为在这种情况下只有1个),但是它是空的。我认为这是因为网站不会一次加载所有内容,因此,当request.get()退出并对其进行抓取时,它仅抓取了第一部分。所以我的问题是1:我对问题的评估正确吗?和2:如果是这样,是否有一种方法可以使request.get()等待返回html之前,或者完全通过另一种途径来获取整个页面。
谢谢
编辑:感谢两个答复。我使用了Selenium并使脚本工作。
您对问题的评估不正确。
您可以检查结果,查看</html>
结尾处是否有正确的位置。这意味着您已经掌握了整个页面。
并requests.text
始终 抓住整个页面;如果您想一次流式传输,则必须显式地进行。
您的问题是该表实际上不存在于HTML中。它是由客户端JavaScript动态构建的。您可以通过实际阅读返回的HTML来查看。因此,除非运行该JavaScript,否则您将没有信息。
有许多通用的解决方案。例如:
selenium
或类似的方法驱动实际的浏览器下载页面。我试图写一个Python脚本,它将定期检查一个网站,看看是否有项目可用。我在过去成功地使用了requests.get、lxml.html和xpath来自动化网站搜索。在这个特定的网址(http://www.anthropologie.com/anthro/product/4120200892474.jsp?cm_vc=SEARCH_RESULTS#/)和同一网站上的其他网址的情况下,我的代码不起作
Jsoup库未解析给定URL的完整html。URL的原始html中缺少一些分区。 有趣的事情:http://facebook.com/search.php?init=s:email&q=somebody@gmail.com&type=users 如果您在jsoup的官方站点http://try.jsoup.org/中给出了上面提到的url,它通过提取正确地显示了url的确切html,但是在使用js
问题内容: 我正在尝试从此页面提取信息。该页面一次加载10个项目,我需要滚动以加载所有条目(共100个)。我能够解析HTML并获取前10个条目所需的信息,但是我想在解析HTML之前完全加载所有条目。 我正在使用python,requests和BeautifulSoup。当页面加载前10个条目时,我解析页面的方式如下: 但这只会加载前10个条目。因此,我查看了该页面,并获得了用于加载后续条目的AJA
问题内容: 我试图在春季连接一个messageSource以用于我的应用程序。它不起作用,给出此错误: org.springframework.context.NoSuchMessageException:在代码“ validation_required”下找不到语言环境“ en”的消息。 我的 applicationContext.xml 包含messageSource的以下定义: 我的邮件属性
问题内容: 我如何解析包含在PHP变量中的HTML代码,例如: 我只想 获取标题之间的文本, 并且我知道使用正则表达式不是一个好主意。 问题答案: 使用PHP 文档对象模型: 输出为: [编辑]:OP澄清后: 如果您想要类似 Lorem ipsum 的内容 。 等,您可以直接使用此正则表达式: 输出: Lorem ipsum。快速的红狐狸……跳过了懒惰的棕色FROG
本文向大家介绍使用PHP的HTML DOMDocument解析HTML,包括了使用PHP的HTML DOMDocument解析HTML的使用技巧和注意事项,需要的朋友参考一下 可以通过以下代码获取<div>标记内的<div>标记内的文本,其中<div>内的class =“ main”内- 示例 输出结果 这将产生以下输出-