【发布时间】:2019-06-05 23:41:01
【问题描述】:
我需要轻推才能完成这个脚本。
我正在为特定子字符串抓取新闻通讯网站。目的是解析页面中名为 Companies提到.. 的特定部分,并将每个公司的名称转换为 List 数据类型
这是我目前所拥有的,它有效,但只获得第一项:
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)
期望的结果:
- 我想将提到的公司加入到这样的列表中:
[Google, Apple, Tesla, Nike, TJX, Ross, L Brands, Dominoes]
我还可以改进正则表达式函数以捕获异常,例如“本期提到的公司:”或“提到的公司:”,如 here 所示。 谢谢。
【问题讨论】:
-
通常使用正则表达式来解析 HTML 是一个非常糟糕的主意。您应该依赖功能齐全的 XML/HTML 解析器。
标签: python regex web-scraping beautifulsoup