python-3.x - 从标签中提取href后得到#
问题描述
试图抓取https://www.pagesjaunes.fr/annuaire/marseille-13/jardinier,我遇到了分页问题。下一页的链接存储在标签中。我在 ['href'] 之后得到 # 而不是链接
tree = html.fromstring(response.text)
soup = BeautifulSoup(response.text, 'html.parser')
Footer = soup.find(class_='result-footer')
divpagination= Footer.find(class_='pagination')
atag=divpagination.find("a", {"id": "pagination-next"})
print(atag.get('href'))
Output : #
注意:我在没有 Accept-Encoding 标头的情况下发出请求,这样服务器就不会压缩要发送的消息
html 标签 : Suivant
用beautifulsoup 标记:
被告人
解决方案
如您所见,如果您在浏览器中检查页面的源代码(或只是打印它),此链接使用 js 进行导航。
标签还有其他(非标准)属性,因此您最终可以尝试对整个事物进行逆向工程(检查标签属性值,单击浏览器中的链接并与新页面的有效 url 进行比较)。
如果它不起作用,那么您将需要一个无头浏览器和代码来驱动它(selenium 是规范的 python 解决方案)。
推荐阅读
- vue.js - 从父组件中的发出事件中检索 $event 对象
- go - 我需要释放指针吗
- asp.net-core - 代码覆盖率选项卡未在 Azure DevOps 中显示报告
- php - PHP如何更新数据库表中不同列中上传的多个文件
- c# - 访问静态非单一行为类
- exception - 拓扑发生异常时跳过记录
- database - 如何在不导入的情况下将excel电子表格导入anylogic数据库,即在主启动时使用代码
- excel - 引用动态工作簿名称 - VBA
- javascript - 在浏览器中实现 gzip 文件的回退
- azure-web-app-service - 在 azure App Service 上连接另一台服务器