gpt4 book ai didi

python - 使用正则表达式从 HTML 中提取所有值

转载 作者:太空宇宙 更新时间:2023-11-03 14:40:05 24 4
gpt4 key购买 nike

我需要一个插入来完成这个脚本。

我正在为特定子字符串抓取新闻稿网站。目的是为名为提到的公司.. 的特定部分解析页面,并将每个公司的名称放入列表数据类型

这是我目前所拥有的,它有效但只得到第一项:

from bs4 import BeautifulSoup as bs4
import requests
import re

url = 'http://news.hipsternomics.com/issues/how-much-is-your-personal-data-worth-on-the-black-market-148489'
r = requests.get(url).text
soup = bs4(r, 'html.parser')
companies = []
for elem in soup(text=re.compile(r'^(.*?Companies mentioned\b)')):
companies.append(elem)

期望的结果:

  • 我想将提到的公司放入这样的列表中:[谷歌、苹果、特斯拉、耐克、TJX、Ross、L Brands、多米诺骨牌]

我还对可以改进正则表达式函数以捕获异常情况的方法持开放态度,例如“本期中提到的公司:”或“提到的公司:”,如 here 所示.谢谢。

最佳答案

您可以通过提供 div 类值来访问内容:

import requests, re
from bs4 import BeautifulSoup as soup
d = soup(requests.get('http://news.hipsternomics.com/issues/how-much-is-your-personal-data-worth-on-the-black-market-148489').text, 'html.parser')
new_d = [i for i in d.find_all('div', {'class':'revue-p'}) if 'Companies mentioned' in i.text][0]
*final_results, _ = [re.sub('^[\w\s]+[,\s:]+|^[,\s]+|\s+$', '', i) for i in new_d.contents if isinstance(i, str)]

输出:

['Google', 'Apple', 'Tesla', 'Nike', 'TJX', 'Ross', 'L Brands', 'Domino’s']

关于python - 使用正则表达式从 HTML 中提取所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54139932/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com