beautifulsoup - 在网站中自动搜索
问题描述
我有一个要在网站上查找的项目列表,我正在尝试使研究自动化;我是 BeautifulSoup 的新手,我不确定我正在寻找的东西是否可行。
本网站的搜索框有以下标签:
<input id="q" name="q" type="text" **value="moby dick"** class="ui-autocomplete-input">
假设我想搜索一本新书“Amleto”而不是“moby dick”。我试过了
content = driver.page_source.encode('utf-8').strip()
soup = BeautifulSoup(content,"html.parser")
searchBox = soup.find('input', {'id': 'q'})
newSearch = Tag(builder=soup.builder, name='input', attrs={'id':'q',
'name':'q',
'type':"text",
'**value':"Amleto"**,
'class':"ui-autocomplete-input")
searchBox.replaceWith(newSearch)
此代码有效,它找到正确的标签并将值“moby dick”替换为 Amleto。事实上,如果我再运行:
soup.find('input', {'id': 'q'})
我得到“Amleto”
尽管如此,在搜索框中我仍然看到“moby dick”;“replaceWith”功能似乎改变了 html 代码,但尚未应用此更改
有什么方法可以应用这种更改还是我偏离了轨道?
我希望我说清楚,谢谢大家
解决方案
我认为更好的方法是使用 selenium 来自动化浏览器活动。Beautiful Soup 可以解析 html,但是 selenium 会打开一个新的浏览器窗口,导航到所需的 URL,输入搜索项名称,然后按搜索模拟真实用户行为。它主要用于自动化前端测试但是您可以使用它来完成您的任务。
推荐阅读
- java - 如果调用 println,EntityManager 找不到引用在 try catch 中的行为会有所不同
- javascript - Node js async fs.fileRead 变量解析
- excel - Microsoft VBA 下标超出范围 - 错误 9
- pine-script - Pinscript 中的交易视图
- c# - IValueConverter 中的可绑定属性始终为 Null
- c - 函数:如何在另一个函数中使用一个函数的元素
- python - 如何解压缩不同目录中的多个文件
- php - 检测 Magento 2 上的成功页面
- java - Java 中 Red Hat JBoss EAP 7.3 上服务器上 ActiveMQ 的 JMS 客户端
- reactjs - 在应用程序的任何文件中更改时反应应用程序不会重新加载