python - 美汤中的进一步提炼清单
问题描述
我正在使用 Beautiful Soup 4 从网页中获取各种结果。目前我正在尝试处理一个 URL 列表,并让 BS 从这些页面中获取一个 div 并将其存储在一个新列表中。我成功地做到了这一点。下一步是获取 div 的文本结果,但让它成功地遍历这个列表并进一步细化结果对我来说并不成功。
我最终得到一个名为的列表dealcomments
,我尝试在对它执行 dealcomments[i].find('a').text 时迭代索引值。我只是不确定如何进一步处理列表以完善它。
def getDealComments(deallinks):
dealcomments = []
# Can't modify dealcomments to get plain text :~(
for index,link in enumerate(deallinks):
source = requests.get(link).text
soup = BeautifulSoup(source, 'lxml')
dealcomments.append(soup.find_all('div', class_='posttext'))
print(len(dealcomments))
return dealcomments
这将成功生成一个包含 80 个项目的列表,但我无法找到一种方法将其细化到文本中。
如果我运行:
print(dealcomments.find('a').text)
回到主要功能它给出了一个错误。
这是我返回的“posttext”div的示例:
[<div class="posttext" style="margin:20px 0px 10px 0px;display:block;margin-bottom:50px;"><a href="/j/4/?pid=1494475&lno=1&tid=11000&afsrc=1" target="_blank">Amazon</a> has All-new Kindle Paperwhite Now Waterproof on sale. Shipping is free.
<ul>
<li><a href="/j/4/?pid=1494475&lno=1&tid=11000&afsrc=1" target="_blank">All-new Kindle Paperwhite (8GB)</a> for <b>$89.99</b></li>
<li><a href="/j/4/?pid=1494475&lno=2&tid=11000&afsrc=1" target="_blank">All-new Kindle Paperwhite (32GB)</a> for <b>$114.99</b></li>
<li><a href="/j/4/?pid=1494475&lno=3&tid=11000&afsrc=1" target="_blank">All-new Kindle - Now with a Built-in Front Light</a> <b>$65</b></li>
<li><b>YMMV</b>: 15% off a Kindle Paperwhite + $20 ebook credit with promo code "<strong>READKINDLE00</strong>".
我正在尝试在“posttext”div 中获取所有可读文本。
解决方案
试试下面的代码。
def getDealComments(deallinks):
dealcomments = []
# Can't modify dealcomments to get plain text :~(
for index,link in enumerate(deallinks):
source = requests.get(link).text
soup = BeautifulSoup(source, 'lxml')
for item in soup.find_all('div', class_='posttext'):
dealcomments.append(item.text)
return dealcomments
推荐阅读
- c - gcc 的链接器可以将 C 标头中静态函数的多个实例折叠到单个实例中吗?
- java - CPLEX+JAVA 内存问题,保留最后找到的解决方案
- node.js - 在运行nestjs并达到任何端点时看不到console.log()或记录器消息
- sql - 将 SQL 数据库从 Azure 导出到本地时出错
- javascript - 如何使用逗号分割字符串?
- reactjs - 如何使用 Redux Tool Kit 的“createSlice”对 Redux 进行单元测试?
- kotlin - kotlin - 更新 kotlin 版本时的类型推断和类型不匹配
- java - 如何在没有秘密的情况下检查 JWT 令牌过期时间?
- javascript - Onfido SDK 一种文档类型直接捕获屏幕?
- perl - Perl 等效于 bash 命令